Daftar Isi:
Video: Grafika Komputer Implementasi Fungsi Transformasi Objek Primitif ke Dalam Program Java 2024
JavaFX memiliki dukungan built-in untuk pemodelan 3D yang realistis. Sebenarnya, grafik adegan JavaFX bersifat tiga dimensi. Sebagian besar program JavaFX bekerja hanya dalam dua dimensi, hanya menentukan koordinat x dan y. Tapi yang harus Anda lakukan untuk masuk ke dimensi ketiga adalah menentukan koordinat z untuk menempatkan simpul grafik adegan Anda di ruang tiga dimensi.
JavaFX menyertakan seperangkat kelas yang kaya yang didedikasikan untuk menciptakan dan memvisualisasikan objek 3D di dunia 3D. Anda bisa membuat bentuk tiga dimensi, seperti kubus dan silinder. Anda dapat memindahkan kamera maya di dalam ruang 3D untuk melihat objek 3D Anda dari berbagai sudut dan perspektif yang berbeda.
Dan Anda bahkan dapat menambahkan sumber pencahayaan untuk mengatur tampilan akhir dunia maya Anda secara hati-hati. Singkatnya, JavaFX mampu menghasilkan adegan 3D yang menakjubkan.
Tambahkan kotak 3D ke dunia Java
Pada langkah ini, tambahkan objek ke dunia 3D: Dalam kasus ini, sebuah kotak, yang ditunjukkan oleh kelas Kotak. Inilah kodenya:
Box box = new Box (100, 100, 100); kotak. setMaterial (blueStuff); kotak. setTranslateX (150); kotak. setTranslateY (-100); kotak. setTranslateZ (-100); akar. getChildren (). tambahkan (kotak);
Konstruktor Kotak menerima tiga argumen yang mewakili lebar, tinggi, dan kedalaman kotak. Pada contoh ini ketiganya diatur ke 100. Dengan demikian, kotak akan digambar sebagai kubus dengan masing-masing sisi berukuran 100 unit.
Kotak itu diberi bahan yang sama seperti silinder; Kemudian, itu diterjemahkan pada ketiga sumbu sehingga Anda dapat memiliki pandangan perspektif kotak. Angka tersebut menunjukkan bagaimana kotak itu muncul saat diberikan. Seperti yang bisa Anda lihat, bagian kiri dan bawah kotak terlihat karena Anda menerjemahkan posisi kotak ke atas dan ke kanan sehingga kamera bisa mendapatkan beberapa perspektif.
Putar kotak 3D
Pada langkah ini, putar kotak untuk membuat tampilan perspektif yang lebih menarik. Ada dua cara untuk memutar objek 3D. Yang paling sederhana adalah memanggil metode setRotate objek dan berikan sudut rotasi:
. setRotate (25);
Secara default, ini akan memutar objek pada sumbu znya. Jika ini sulit untuk divisualisasikan, bayangkan menusuk benda dengan tongkat panjang yang sejajar dengan sumbu z. Lalu, putar benda itu di atas tusuk sate.
Jika Anda ingin memutar objek di sepanjang sumbu yang berbeda, panggil dulu setRotationAxis. Misalnya, untuk memutar objek pada sumbu x-nya, gunakan urutan ini:
. setRotationAxis (Putar X_AXIS); kotak. setRotate (25);
Bayangkan menjalankan tusuk sate melalui kotak dengan tusuk sate sejajar dengan sumbu x dan kemudian memutar kotak 25 derajat.
Satu-satunya masalah dengan menggunakan metode setRotate untuk memutar objek 3D adalah bekerja hanya pada satu sumbu pada satu waktu. Misalnya, Anda ingin memutar kotak 25 derajat pada sumbu z dan x. Kode berikut akan tidak mencapainya:
. setRotationAxis (Putar X_AXIS); kotak. setRotate (25); kotak. setRotationAxis (Putar Z_AXIS); kotak. setRotate (25);
Bila metode setRotate disebut kedua kalinya untuk memutar kotak pada sumbu z, rotasi sumbu x di-reset.
Untuk memutar di lebih dari satu sumbu, Anda harus menggunakan kelas Putar sebagai gantinya. Anda membuat contoh Rotate terpisah untuk setiap sumbu yang ingin Anda putar objek dan kemudian menambahkan semua contoh Putar ke koleksi Transforms objek melalui getTransforms (). addAll method, seperti ini:
Rotate rxBox = new Rotate (0, 0, 0, 0, Rotate. X_AXIS); Putar ryBox = putar baru (0, 0, 0, 0, Putar Y_AXIS); Rotate rzBox = new Rotate (0, 0, 0, 0, Rotate. Z_AXIS); rxbox setAngle (30); ryBox setAngle (50); rzBox setAngle (30); kotak. getTransforms (). addAll (rxBox, ryBox, rzBox);
Konektor Rotate menerima empat parameter. Tiga yang pertama adalah koordinat x, y, dan z dari titik di dalam objek yang dilalui sumbu rotasi. Biasanya, Anda menentukan angka nol untuk parameter ini untuk memutar objek di sekitar titik tengahnya. Parameter keempat menentukan poros rotasi.
Angka ini menunjukkan bagaimana kotak itu muncul setelah diputar.
Kotak setelah diputar.