[英]Webgl three.js Dependency of several objects
我對對象的依賴性有疑問。 我想使一個對象依賴於另外兩個對象。 如果更改一個父對象(例如y-Position)的位置,則從屬對象(子對象)應旋轉,也應移動。
這是我在圖片上實現的鏈接。 左側是初始狀態,右側是更改后的狀態。 圓柱體應取決於兩個框。 這意味着圓柱體是子對象,並且框都應該是該子對象的父對象。 我嘗試使用父級和子級屬性進行嘗試,但無法使子級對象依賴於兩個父級對象。
有人能幫我嗎?
這是我當前的代碼,但是lookAt函數無法正常工作。
//cube 1
var cube=new THREE.BoxGeometry(4,4,4);
var material=new THREE.MeshBasicMaterial ({ color: 0xffffff });
mesh1=new THREE.Mesh(cube,material);
mesh1.position.set(-2,2,0);
scene.add(mesh1);
//cube 2
var cube2=new THREE.BoxGeometry(2,2,2);
var material=new THREE.MeshBasicMaterial ({ color:0x000000 });
mesh2=new THREE.Mesh(cube2,material);
mesh2.position.x=6;
mesh2.position.y=2;
//mesh2.position.y=-2;
scene.add(mesh2);
//cylinder
var cylinder=new THREE.CylinderGeometry(1,1,6,30);
var material=new THREE.MeshBasicMaterial({ color:0xff3399 });
mesh3=new THREE.Mesh(cylinder,material);
mesh1.add(mesh3);
mesh3.lookAt(mesh2.position);
您需要兩個層次的層次結構,例如:
cube1.add(cylinder)
cylinder.add(cube2)
您可以使用Object3D類的lookAt
函數來完成所需的操作。
例如。
將圓柱體添加為cube1的子代,因此移動cube1也會移動圓柱體。
cube1.add(cylinder)
然后,當移動多維數據集1(或/和多維數據集2)時,調用圓柱體上的lookAt函數以查看多維數據集2的位置。
cylinder.lookAt(cube2.position)
是的, 2pha實際上是正確的。 我認為他實際需要的是這樣的東西(請注意,您需要縮放圓柱或移動正方形,除非它們正好與圓柱高度分開):
cylinder.position.x=cube1.position.x
cylinder.position.y=cube1.position.y
cylinder.position.z=cube1.position.z
cylinder.lookAt(cube2.position)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.