أحاول تطوير أدوات النمذجة ثلاثية الأبعاد باستخدام three.js ......
لقد استخدمت للتو الأمثلة الخاصة بك لتقديم كائنات ثلاثية الأبعاد في منصات إطارات سلكية!
الآن أريد تغيير حجم الكائنات ثلاثية الأبعاد باستخدام أحداث السحب بالماوس أو عن طريق تحجيم الكائن ثلاثي الأبعاد بالنقر فوق زر!
في انتظار رد اور!
و Mesh
كائن لديه scale
الممتلكات. ما عليك سوى إجراء mesh.scale.x = 2
أو mesh.scale.set( 2, 1, 1 )
.
لدي نفس مشكلة الرجل هناك: http://stackoverflow.com/questions/19150120/scaling-an-object-in-three-js
في اللحظة التي أغير فيها المقياس ، تغمرني:
"Matrix3.getInverse (): لا يمكن عكس المصفوفة ، المحدد هو 0"
في ثلاثة r73. js: 4482: 5
أحصل على نفس الخطأ. باستخدام THREE.CylinderGeometry
gunderson جرب stackoverflow إذا كنت بحاجة إلى مساعدة.
إذا كانت لديك مجموعة من الكائنات ، فحاول إضافتها إلى مجموعة كـ _تقديم الوالدين_ وقياس الأصل ...
const renderingParent = new THREE.Group();
// ...
renderingParent.scale.set(2,1,1);
renderingParent.add(groupOfObjects);
ماذا لو كنت أتغير باستمرار؟ (لا أريد حساب المقاييس 10 مرات)
أليست هناك طريقة تغير العرض الهندسي والارتفاع؟
أفضل ، لويس
luisArandas الرجاء استخدام المنتدى أو stackoverflow لطلبات المساعدة.
تبدو الأشكال الهندسية للمربع مثل المنشئ! == scale. إذا قمت بتغيير المقياس إلى x = 1 ، عندما يكون الهدف هو BoxBufferGeometry (1،1،1) ؛ يظهر REEEEALY وجهات نظر مختلفة من الأشياء الخاصة بي. هل هذا طبيعي؟ إنها حقًا تحطم لعبتي ، عندما يصبح الغرض بعد ضبط = -1 حجمًا أكبر.
هنا بعض لقطات الشاشة لذا فإن الرقم الأول في وحدة التحكم هو حجم x و y و z لمكعب المشغل ، وعندما أستخدمه
cubeSize.xyz = cubeSize.xyz - 1 ؛
cube.scale.set (cubeSize.xyz ، cubeSize.xyz ، cubeSize.xyz)
يبدو أنه بقي بنفس الحجم بعد أن أصبح أصغر ، لكن اجعله يتراجع مع الموضع Y وعندما أستخدمه بعد ذلك
cubeSize.xyz = cubeSize.xyz + 1 ،
cube.scale.set (cubeSize.xyz ، cubeSize.xyz ، cubeSize.xyz) ؛
يجعله أكثر بكثير مما تم تعيينه بواسطة هندسة الصندوق ، ومع ذلك ، لا يمكنك رؤية هذا المتغير يصبح 2 مرة أخرى. لا أستطيع أن أخبرك عن سبب ذلك ، ولكن بالنسبة لي ، يبدو أن المقياس له أحجام مختلفة عن المُنشئ. ربما يستخدم المقياس العدادات وأقدام الهندسة ، لا أعرف.
هل يمكن أن تكون مشكلتي فقط ، أم حقيبة من ثلاثة إصدارات js 101؟ (100 تبدو في الواقع نفس العمل)
أقترح عليك ، dygy ، نقل السؤال إلى المنتدى إذا كنت ترغب في الحصول على إجابة مناسبة: https://discourse.threejs.org/
التعليق الأكثر فائدة
و
Mesh
كائن لديهscale
الممتلكات. ما عليك سوى إجراءmesh.scale.x = 2
أوmesh.scale.set( 2, 1, 1 )
.