Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วิธีวาดรูปทรง 2D แบบกำหนดเองใน JavaFX ด้วย Path class

แพ็กเกจ javafx.scene.shape มีคลาสสำหรับวาดรูปทรง 2D ต่างๆ แต่เป็นแค่รูปทรงพื้นฐาน เช่น เส้น, วงกลม, polygon, ellipse ฯลฯ

ดังนั้น หากต้องการวาดรูปทรงซับซ้อนแบบกำหนดเอง ต้องใช้คลาส Path

คลาส Path

คลาส Path แทนโครงร่างเรขาคณิตของรูปทรง และผูกกับ observable list ที่เก็บ Path Elements ต่างๆ เช่น MoveTo, LineTo, HLineTo, VLineTo, ArcTo, QuadCurveTo, CubicCurveTo

คอนสตรัคเตอร์ของคลาสนี้รับ variable arguments ประเภท PathElement และสร้าง path ตาม elements ที่ให้มา

ตัวอย่าง

Path Element MoveTo ใช้ย้ายตำแหน่งปัจจุบันของ path ไปยังจุดที่ระบุ และ LineTo วาดเส้นจากพิกัดปัจจุบันไปยังพิกัดที่ระบุ

ในตัวอย่างต่อไปนี้ เราลองวาดรูปทรงซับซ้อนแบบกำหนดเองด้วย MoveTo, LineTo และ Path classes:

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.shape.LineTo;
import javafx.scene.shape.MoveTo;
import javafx.scene.shape.Path;

public class ComplexShape extends Application {
    public void start(Stage stage) {
        // วาดรูปทรง
        MoveTo moveTo = new MoveTo(108, 71);
        LineTo line1 = new LineTo(321, 161);
        LineTo line2 = new LineTo(126, 232);
        LineTo line3 = new LineTo(232, 52);
        LineTo line4 = new LineTo(269, 250);
        LineTo line5 = new LineTo(108, 71);

        // สร้าง Path
        Path path = new Path(moveTo, line1, line2, line3, line4, line5);

        // เตรียม Stage
        Group root = new Group(path);
        Scene scene = new Scene(root, 600, 300);
        stage.setTitle("Drawing an arc through a path");
        stage.setScene(scene);
        stage.show();
    }
    public static void main(String args[]){
        launch(args);
    }
}

ผลลัพธ์

วิธีวาดรูปทรง 2D แบบกำหนดเองใน JavaFX ด้วย Path class