
جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-23 12:54
إذا كنت مبرمج جافا ، فربما ترغب في البرمجة ثلاثية الأبعاد في وقت ما. ولكن كيف؟ حسنًا ، يمكنك استخدام Java3D والكتابة ببطء في كل نقطة في مضلع ثلاثي الأبعاد (جربتها ثق بي أنها فكرة سيئة) ، أو يمكنك استخدام Blender (https://blender.org) وهو برنامج نمذجة ثلاثية الأبعاد مجاني ومفتوح المصدر مع نص برمجي يسمى Blend2Java (https://sourceforge.net/projects/blend2java/). ومع ذلك ، فإن الوثائق الموجودة على Blend2Java تكاد تكون غير موجودة ، ولهذا السبب أجلس هنا لأكتب هذا.
الخطوة الأولى: تنزيل البرامج
ستحتاج إلى Blender (https://blender.org) و Blend2Java (https://sourceforge.net/projects/blend2java/). حسنًا ، بمجرد أن تبدأ كلاهما من خلال إنشاء نموذج بسيط (أو مجرد استخدام المكعب القياسي) في Blender.
الخطوة 2: تصدير النموذج الخاص بك إلى XML
بمجرد أن يكون لديك نموذج ترغب في استخدامه في Blender ، افتح وضع التحرير واضغط على مفتاح "a" لتحديد جميع النقاط. في اللوحة السفلية حدد محرر النص. افتح ملفًا جديدًا في محرر النصوص. افتح ملف blend2java.py الذي قمت بتنزيله. Run. Ok يجب أن يكون الكائن الآن بتنسيق. XML أينما قمت بحفظه (إذا كان لديك ورسالة خطأ تأكد من أن shure لديك مادة واحدة فقط للكائن). أعد تسمية الكائن (سيكون له اسم غريب).
الخطوة 3: استيراد الكائن إلى Java
Shape3D فريد = فارغ ؛ جرب {XMLDecoder e = new XMLDecoder (جديد BufferedInputStream (جديد FileInputStream ("c: /HandShape3D.xml"))) ؛ // اسم ملفك هنا fred = (Shape3D) e.readObject () ؛ e.close () ؛ } catch (استثناء هـ) {e.printStackTrace () ؛ } ColoringAttributes at = new ColoringAttributes ()؛ مظهر ap = مظهر جديد () ؛ Color3f col = New Color3f (1.0f ، 0.0f ، 1.0f) ؛ ColoringAttributes ca = new ColoringAttributes (col، ColoringAttributes. NICEST)؛ ap.setColoringAttributes (كاليفورنيا) ؛ fred.setAppearance (ap) ؛ obj.addChild (فريد) ؛ أدخل هذا في أي رمز ثلاثي الأبعاد أو استخدم الكود بالكامل هنا استيراد java.io. * ؛ استيراد java.beans. XMLDecoder ؛ استيراد java.applet. Applet ؛ استيراد java.awt. * ؛ استيراد java. awt.event. * ؛ استيراد com.sun.j3d.utils.applet. MainFrame ؛ استيراد com.sun.j3d.utils.universe. * ؛ استيراد javax.media.j3d. * ؛ استيراد javax.vecmath. * ؛ استيراد جافا.applet. Applet ؛ استيراد java.awt. BorderLayout ؛ استيراد java.awt. Frame ؛ استيراد com.sun.j3d.utils.applet. MainFrame ؛ استيراد com.sun.j3d.utils.geometry. ColorCube ؛ استيراد com.sun. j3d.utils.universe. * ؛ استيراد com.sun.j3d.utils.behaviors.mouse. * ؛ استيراد javax.media.j3d. * ؛ استيراد javax.vecmath. * ؛ استيراد java.awt.event. * ؛ استيراد جافا.util. Enumeration؛ فئة عامة MouseBehaviorApp توسع التطبيق الصغير {public BranchGroup createSceneGraph () {BranchGroup objRoot = new BranchGroup ()؛ TransformGroup objTransform = new TransformGroup () ؛ objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_WRITE) ، objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_READ) ، objRoot.addChild (objTransform) ، Shape3D فريد = فارغ ؛ جرب {XMLDecoder e = new XMLDecoder (جديد BufferedInputStream (جديد FileInputStream ("c: /HandShape3D.xml"))) ؛ فريد = (Shape3D) e.readObject () ؛ e.close () ؛ } catch (استثناء هـ) {e.printStackTrace () ؛ } ColoringAttributes at = new ColoringAttributes ()؛ مظهر ap = مظهر جديد () ؛ Color3f col = New Color3f (1.0f ، 0.0f ، 1.0f) ؛ ColoringAttributes ca = new ColoringAttributes (col، ColoringAttributes. NICEST)؛ ap.setColoringAttributes (كاليفورنيا) ؛ fred.setAppearance (ap) ؛ objTransform.addChild (فريد) ؛ MouseRotate myMouseRotate = new MouseRotate () ؛ myMouseRotate.setTransformGroup (objTransform) ، myMouseRotate.setSchedulingBounds (new BoundingSphere ()) ؛ objRoot.addChild (myMouseRotate) ، MouseTranslate myMouseTranslate = new MouseTranslate () ؛ myMouseTranslate.setTransformGroup (objTransform) ، myMouseTranslate.setSchedulingBounds (new BoundingSphere ()) ؛ objRoot.addChild (myMouseTranslate) ، MouseZoom myMouseZoom = new MouseZoom () ؛ myMouseZoom.setTransformGroup (objTransform) ، myMouseZoom.setSchedulingBounds (new BoundingSphere ()) ؛ objRoot.addChild (myMouseZoom) ، objRoot.compile () ، عودة objRoot ؛ } MouseBehaviorApp () العامة {setLayout (new BorderLayout ())؛ Canvas3D canvas3D = Canvas3D الجديدة (SimpleUniverse.getPreferredConfiguration ()) ؛ إضافة ("المركز" ، canvas3D) ؛ مشهد BranchGroup = createSceneGraph () ، SimpleUniverse simpleU = جديد SimpleUniverse (canvas3D) ؛ simpleU.getViewingPlatform (). setNominalViewingTransform () ، simpleU.addBranchGraph (مشهد) ؛ } public static void main (String args) {Frame frame = new MainFrame (new MouseBehaviorApp ()، 256، 256)؛ }} استخدم هذا للحصول على برنامج كامل! لقد انتهيت! ثم تقول "ماذا الآن"؟ ليس لدي أدنى فكرة! لقد تعلمت جافا منذ شهر مضى لول!
موصى به:
إعادة استخدام خافض حرارة للكمبيوتر لإنشاء مبدد حراري ترانزستور: 7 خطوات

إعادة استخدام خافض حرارة للكمبيوتر لإنشاء غرفة تبريد ترانزستور: منذ فترة اشتريت بعض Raspberry Pi 3s للتلاعب بها. نظرًا لأنهم يأتون بدون غرفة تبريد ، فقد كنت في السوق بالنسبة للبعض. لقد أجريت بحثًا سريعًا على Google ووجدت هذا Instructable (Raspberry Pi Heat Sink) - كان هذا بعد رفض فكرة
استخدام القياس التصويري لإنشاء النماذج: 9 خطوات

استخدام القياس التصويري لإنشاء النماذج: من أنا؟ أنا صامويل كونكلين وأنا طالب في السنة الثانية في E.L. مدرسة مايرز الثانوية. لقد جربت القياس التصويري خلال الشهرين الماضيين وآمل أن أساعدك إذا اخترت إعادة إنشاء هذا المنتج. أنا مهتم بمعرفة كيف يمكن للآخرين
استخدام LEDS و AT Tiny لإنشاء نجمة وامضة مع عزف بيزو "Twinkle، Twinkle، Little Star": 6 خطوات

استخدام LEDS و AT Tiny لإنشاء نجمة وامضة مع عزف بيزو "Twinkle، Twinkle، Little Star": تستخدم هذه الدائرة مصابيح LED و AT TINY و Piezo لإنتاج نجمة وامضة وموسيقى لـ & quot؛ Twinkle و Twinkle و Little Star & quot؛ يرجى الاطلاع على الخطوة التالية للحصول على نظرة عامة حول الدائرة
أعد استخدام بطارية الكمبيوتر المحمول القديمة لإنشاء بنك طاقة: 9 خطوات (بالصور)

أعد استخدام بطارية الكمبيوتر المحمول القديمة الخاصة بك لإنشاء بنك طاقة: [تشغيل الفيديو] [بنك الطاقة الشمسية] قبل بضعة أشهر لم تعمل بطارية كمبيوتر Dell المحمول الخاصة بي. كلما قمت بفصلها من مصدر التيار المتردد الرئيسي ، يتم إيقاف تشغيل الكمبيوتر المحمول على الفور. بعد أيام قليلة من ذلك. للإحباط ، استبدلت البطارية واحتفظت بالبطارية الميتة (حسب
أعد استخدام تركيبات الإضاءة القديمة لإنشاء إضاءة LED فنية: 4 خطوات

قم بإعادة تدوير تركيبات الإضاءة القديمة لإنشاء إضاءة LED فنية: ابحث عن تركيبات الإضاءة القديمة في متاجر التوفير ومبيعات المرآب وما إلى ذلك. قم بتنظيفها ثم دمج سلاسل إضاءة LED لإنشاء إضاءة مستقبلية المظهر