|
3#
樓主 |
發表于 2016-5-12 12:03:47
|
只看該作者
給點核心程序吧。這也是我老師整的。好東西就要分享," Q* X0 @# Q' ^% f3 N7 {6 |6 F
var loader = new THREE.STLLoader();
) P6 ^7 Z! V2 A+ l& x var group = new THREE.Object3D();
. \& P# |! c0 \. w: c* r; Z. i loader.load("../assets/models/a.stl", function (geometry) {: R4 b2 q: x% ^) n2 V- d
console.log(geometry);
# m. g4 d- r0 Y" p1 P; k5 Z, k, @0 W+ J# E1 A: n1 @! |& K
//加載到 mesh9 ^: r l9 T( S2 J9 X# B) |
var mat = new THREE.MeshLambertMaterial({color: 0x444444});
8 W3 z* C: l# z5 | mesh = new THREE.Mesh(geometry, mat);
% \6 Z! A9 ?& J' s' O mesh .rotation.x = -0.5 * Math.PI;
" ?# W* S& L) b2 @* N& z+ C mesh .scale.set(0.6, 0.6, 0.6);: f7 B, {* O+ j! c/ e H
1 b! E( L; @# l) E
//使用 box 生成邊界,將物體調整到原點4 ^; l) T' l. {! E
var box = new THREE.Box3().setFromObject( mesh );3 {+ F* U8 l0 V! ^
box.center( mesh.position ); // this re-sets the mesh position& S/ H1 G8 ^! X1 `& X" O1 o
mesh.position.multiplyScalar( - 1 );- ~& G& {0 }( v) [- |1 t/ s
//將mesh 加到組中
2 [* J; P8 M8 E% l4 w+ X1 ] group = new THREE.Group();
: t* W4 T4 G6 O% y, H scene.add( group );3 S: [5 l& U: J& ^
group.add( mesh );% c; m6 n" _$ x8 J8 e( C, }
: T1 C* x# q- D+ Z) R //設置組的坐標為mesh顯示到原點時mesh的中心點坐標取負值,移到加載時的位置
9 ^" n1 c& E( x5 f! b: q group.position.y = -mesh.position.y;
' m+ Z$ h. F6 H/ z( v; ? group.position.x = -mesh.position.x;
( r& k' l0 R( v! w group.position.z = -mesh.position.z;
0 a6 u. Z- C+ D4 f0 L5 Y8 t C) h( p3 o5 X: R( u
}); |
|