Three.js: تغيير النقطة المحورية للكائن الخاص بي؟

تم إنشاؤها على ٢٠ فبراير ٢٠١٢  ·  10تعليقات  ·  مصدر: mrdoob/three.js

أنا جديد جدًا في هذا المجال ، لذا أعذر إذا كان سؤالًا غبيًا.

مشكلتي:

أرغب في بناء منشور (مجموعات مضلعة من 24 طائرة). لدي 24 طائرة ، كل منهم 15 درجة من بعضها البعض ومجمعة. نظرًا لأنه من المعقد حساب مقدار المسافة x و z ، سيكون من الأسهل إذا قمت بتعيين النقطة المحورية في أسفل اليمين على سبيل المثال؟ حق؟ ولكن كيف؟ أم أن هناك إمكانية أخرى لإنشاء دائرة تتكون من طائرات؟

اسف على سوء لغتي الانجليزية :-/

Question

التعليق الأكثر فائدة

لديك خياران.

إزاحة كل القمم في هندستك:

geometry.applyMatrix( new THREE.Matrix4().setTranslation( 0, 10, 0 ) );

قم بإنشاء كائن يعمل كمحور:

mesh.position.y = 10;

var pivot = new THREE.Object3D();
pivot.add( mesh );

scene.add( pivot );

ال 10 كومينتر

لديك خياران.

إزاحة كل القمم في هندستك:

geometry.applyMatrix( new THREE.Matrix4().setTranslation( 0, 10, 0 ) );

قم بإنشاء كائن يعمل كمحور:

mesh.position.y = 10;

var pivot = new THREE.Object3D();
pivot.add( mesh );

scene.add( pivot );

هل هناك أي إيجابيات أو سلبيات في هاتين الطريقتين؟

geometry.applyMatrix (جديد THREE.Matrix4 (). setTranslation (0، 10، 0)) ؛

هو الآن

geometry.applyMatrix (new THREE.Matrix4 (). makeTranslation (0، 10، 0)) ؛

https://github.com/mrdoob/three.js/commit/7f05ba167c522d1b9bac01677c2249b0f1b8c834

تطبيق applicationMatrix على شيء الترجمة ، لا يعمل في حالتي. لا أعرف لماذا.
يعمل الكائن المحوري. و IMHO أسهل.
ملحوظة:
استخدم هذا

mesh.position.x = ###;
mesh.position.y = ###;
mesh.position.z = ###;

بدلا من:

mesh.position.set(###,###,###);

شكرًا placegraphichere ، لقد ساعد ذلك.

يجب أن يعمل شيء من هذا القبيل أيضًا مع three.js v78 ، إذا كنت تريد على سبيل المثال. استدر حول حافة الكائنات بدلاً من ذلك إذا كان مركزها:

.js mesh.geometry.translate( -myObjectWidth/2, 0, 0 );

لكن يجب أن تدرك أن استخدام geometry.translate() سيؤدي إلى تعديل موضع جميع الرؤوس. إنه حل جيد طالما أنك لا تخطط لتغيير المحور مرة أخرى لاحقًا.

أريد ترجمة أصل الشبكة (حاوية صندوقية ثلاثية الأبعاد) من المركز إلى الزاوية السفلية اليسرى. لذلك عندما أقوم بإضافة أي صندوق شبكي صغير آخر داخل شبكة الحاوية ، يجب وضعه داخل الركن السفلي الأيسر بدلاً من وضعه في المنتصف.

mesh.geometry.translate (-myObjectWidth / 2 ، 0 ، 0) ؛

عندما أستخدم هذا ، يتغير موقع الشبكة الخاص بي أيضًا

imguccho من فضلك ، استخدم المنتدى للمساعدة.

كيف يمكنني ترجمة النقطة لـ ArrowHelper

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات