เริ่มต้น JavaFX 3D พร้อมการตั้งค่า pom.xml 

JavaFX เป็นเครื่องมือที่ช่วยให้การพัฒนา UI สำหรับแอปพลิเคชันเดสก์ท็อปง่ายขึ้น และรองรับการทำงานกับกราฟิก 3D ได้อย่างมีประสิทธิภาพ ในบทความนี้ เราจะพูดถึงวิธีการสร้าง 3D Objects ใน JavaFX และการตั้งค่าโปรเจกต์ด้วย Maven โดยการปรับแต่งไฟล์ pom.xml


การตั้งค่า Maven โปรเจกต์

ก่อนอื่น เราต้องเตรียมโปรเจกต์ Maven ให้รองรับ JavaFX และการทำงานกับ 3D

  1. สร้างโปรเจกต์ Maven ใหม่
  2. เปิดไฟล์ pom.xml และเพิ่มการตั้งค่าดังนี้:

ตัวอย่างการตั้งค่า pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>javafx-3d-example</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <javafx.version>20</javafx.version>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
    </properties>

    <dependencies>
        <!-- JavaFX Modules -->
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>${javafx.version}</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-graphics</artifactId>
            <version>${javafx.version}</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>${maven.compiler.source}</source>
                    <target>${maven.compiler.target}</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>0.0.8</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <mainClass>com.example.Main</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

หลังจากตั้งค่าเสร็จ ให้รันคำสั่ง mvn install เพื่อตรวจสอบว่าโปรเจกต์ Maven ของคุณพร้อมใช้งาน


การสร้าง 3D Object ใน JavaFX

JavaFX รองรับการทำงานกับกราฟิก 3D โดยใช้คลาสที่มีอยู่ เช่น BoxSphere, และ Cylinder รวมถึงรองรับการตั้งค่ากล้อง (Camera) และแสง (Lighting)

ตัวอย่างโค้ด JavaFX 3D

import javafx.application.Application;
import javafx.scene.*;
import javafx.scene.paint.Color;
import javafx.scene.paint.PhongMaterial;
import javafx.scene.shape.Box;
import javafx.scene.shape.Sphere;
import javafx.scene.transform.Rotate;
import javafx.stage.Stage;

public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
        // สร้าง Box
        Box box = new Box(100, 100, 100);
        PhongMaterial boxMaterial = new PhongMaterial();
        boxMaterial.setDiffuseColor(Color.CORAL);
        box.setMaterial(boxMaterial);

        // สร้าง Sphere
        Sphere sphere = new Sphere(50);
        PhongMaterial sphereMaterial = new PhongMaterial();
        sphereMaterial.setDiffuseColor(Color.SKYBLUE);
        sphere.setMaterial(sphereMaterial);
        sphere.setTranslateX(150);

        // เพิ่มแสง
        PointLight light = new PointLight(Color.WHITE);
        light.setTranslateX(200);
        light.setTranslateY(-100);
        light.setTranslateZ(-200);

        AmbientLight ambientLight = new AmbientLight(Color.GRAY);

        // ตั้งค่ากล้อง
        PerspectiveCamera camera = new PerspectiveCamera(true);
        camera.setTranslateZ(-500);

        // เพิ่มองค์ประกอบลงใน Group
        Group group = new Group(box, sphere, light, ambientLight);

        // สร้าง SubScene
        SubScene subScene = new SubScene(group, 800, 600, true, SceneAntialiasing.BALANCED);
        subScene.setFill(Color.BLACK);
        subScene.setCamera(camera);

        // เพิ่ม SubScene ลงใน Scene หลัก
        Group root = new Group(subScene);
        Scene scene = new Scene(root, 800, 600);

        primaryStage.setTitle("JavaFX 3D Example");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

คำอธิบายโค้ด

  1. การสร้าง Object 3D:

    • Box และ Sphere ใช้สำหรับสร้างกล่องและทรงกลมตามลำดับ
    • ใช้ PhongMaterial เพื่อเพิ่มสีและพื้นผิว
  2. การเพิ่มแสง:

    • PointLight และ AmbientLight ใช้สำหรับการตั้งค่าแสงในฉาก
  3. การตั้งค่ากล้อง:

    • PerspectiveCamera ให้มุมมอง 3D ที่สมจริง
  4. การรวมใน SubScene:

    • SubScene ช่วยแยกการจัดการฉาก 3D และเชื่อมต่อกับ Scene หลัก

สรุป

JavaFX เป็นเครื่องมือที่ทรงพลังสำหรับการพัฒนา UI และการทำงานกับกราฟิก 3D ขั้นพื้นฐาน การตั้งค่าโปรเจกต์ด้วย Maven และการทำงานกับ 3D Object สามารถทำได้ง่ายด้วยคลาสและเครื่องมือที่ JavaFX จัดเตรียมไว้ให้ บทความนี้ช่วยให้คุณเริ่มต้นพัฒนาแอปพลิเคชัน 3D ด้วย JavaFX ได้อย่างมั่นใจ

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

จากสมศรี 422R สู่หุ่นยนต๋ในยุค llm