|
3#
樓主 |
發表于 2016-5-12 12:03:47
|
只看該作者
給點核心程序吧。這也是我老師整的。好東西就要分享,7 R1 H4 ^% G; ~1 Y7 d4 I$ o8 ~6 G' Z
var loader = new THREE.STLLoader();# x' Q3 X3 j, i6 K
var group = new THREE.Object3D();
8 E1 ^7 | r( M5 F9 ? loader.load("../assets/models/a.stl", function (geometry) {
5 P$ d0 w" Z$ m F# H console.log(geometry);' \2 S3 d _9 ^' h) s" U4 y
; A$ a, _$ t- V, {9 Z" J- T //加載到 mesh$ z! e1 F& I E" ]% x9 Z
var mat = new THREE.MeshLambertMaterial({color: 0x444444});' R5 P W4 |, t# c# F
mesh = new THREE.Mesh(geometry, mat);
Q5 [* c/ a+ b1 G t6 i. ^ mesh .rotation.x = -0.5 * Math.PI;' x) u" U' T: u/ u8 |
mesh .scale.set(0.6, 0.6, 0.6);
" ^0 E2 B5 x1 Z7 ?4 k
; H, Q7 j7 o9 w" [2 U, k //使用 box 生成邊界,將物體調整到原點
; _4 j' L3 ?/ E var box = new THREE.Box3().setFromObject( mesh );
( ]2 F9 L+ k* F( ], c1 x box.center( mesh.position ); // this re-sets the mesh position" o! |" s9 R& B/ M$ }* H& b3 N
mesh.position.multiplyScalar( - 1 );
3 W* R# {3 ~9 G8 P' J+ D1 d! F, p //將mesh 加到組中
- z7 c: j6 N" V' m4 ?6 r group = new THREE.Group();
. V0 V5 |* d. f; E! J/ Q+ u/ | scene.add( group );
" \6 A, b$ D! n1 Y; \ group.add( mesh );
% k) \1 O2 P, N+ ]
% G3 }& X/ ?6 z% R7 a: s //設置組的坐標為mesh顯示到原點時mesh的中心點坐標取負值,移到加載時的位置' b; `4 l1 J+ |, a, Z1 ~5 \
group.position.y = -mesh.position.y;
6 j" a" p2 w0 j; [6 N group.position.x = -mesh.position.x;
- [- Y! e0 B! i group.position.z = -mesh.position.z;- J" @7 G, ?% L0 k) V
. K/ D) R+ \7 o }); |
|