簡體   English   中英

如何加載json 3d對象並將其放在threejs的原始位置

[英]How to load json 3d object and put it at origin in threejs

我們如何加載json對象並將其放置在原點。 object.position.x和mesh.position.x都不幫助我反對原點。 我想獲取對象的最大和最小x,y和z值,以便創建對象邊界框。 當我在屏幕上以原點為中心繪制該框時,它將在其中包含整個對象。 如果對象的位置不在原點,那么我現在的操作方式將無法正常工作。

如果未設置mesh.geometry.boundingBox屬性,請使用mesh.geometry.computeBoundingBox()方法設置該屬性。 然后(明確編寫此代碼,您可以使用Vector操作完成此操作)

var geometryCenter = new THREE.Vector3();
geometryCenter.x = mesh.geometry.boundingBox.min.x + ( mesh.geometry.boundingBox.max.x - mesh.geometry.boundingBox.min.x ) / 2;
geometryCenter.y = mesh.geometry.boundingBox.min.y + ( mesh.geometry.boundingBox.max.y - mesh.geometry.boundingBox.min.y ) / 2;
geometryCenter.z = mesh.geometry.boundingBox.min.z + ( mesh.geometry.boundingBox.max.z - mesh.geometry.boundingBox.min.z ) / 2;

mesh.position.set( -geometryCenter.x, -geometryCenter.y, -geometryCenter.z );

應該將網格物體放置在原點。

調用mesh.geometry.center(),它將使幾何本身偏移以原點為中心。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM