Java: Vẽ hình SVG 2D


Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên

SVG (Scalable Vector Graphics) là một ngôn ngữ dựa trên XML để xác định đồ họa dựa trên vector.

Trong JavaFX, chúng ta có thể tạo hình ảnh bằng cách phân tích cú pháp các đường dẫn SVG. Các hình dạng như vậy được đại diện bởi lớp có tên SVGPath. Lớp này thuộc về gói javafx.scene.shape.

Bằng cách khởi tạo lớp này, bạn có thể tạo một nút được tạo bằng cách phân tích cú pháp đường dẫn SVG trong JavaFX.

Lớp này có một thuộc tính có tên là nội dung của kiểu dữ liệu Chuỗi. Điều này đại diện cho chuỗi được mã hóa Đường dẫn SVG, từ đó hình ảnh sẽ được vẽ.

Để vẽ một hình dạng bằng cách phân tích cú pháp đường dẫn SVG, bạn cần chuyển các giá trị cho thuộc tính này, sử dụng phương thức có tên setContent () của lớp này như sau:

setContent(value);

Các bước để vẽ SVGPath

Để vẽ một hình dạng bằng cách phân tích cú pháp SVGPath trong JavaFX, hãy làm theo các bước dưới đây.

Bước 1: Tạo lớp học

Tạo một lớp Java và kế thừa lớp Ứng dụng của gói javafx.application và triển khai phương thức start () của lớp này như sau.

public class ClassName extends Application {  
   @Override     
   public void start(Stage primaryStage) throws Exception {      
   }    
}

Bước 2: Tạo một đối tượng của lớp SVGPath

Bạn có thể tạo một hình dạng cần thiết trong JavaFX bằng cách phân tích cú pháp SVGPath. Để làm như vậy, hãy khởi tạo lớp có tên SVGPath thuộc về một gói javafx.scene.shape . Bạn có thể khởi tạo lớp này như sau.

//Creating an object of the class SVGPath         
SVGPath svgpath = new SVGPath();

Bước 3: Đặt SVGPath

Đặt nội dung cho đối tượng SVG bằng phương thức setContent () . Đối với phương pháp này, bạn cần phải chuyển SVGPath. Sử dụng nó, một hình dạng sẽ được vẽ dưới dạng một chuỗi như được hiển thị trong khối mã sau đây.

String path = "M 100 100 L 300 100 L 200 300 z";
//Setting the SVGPath in the form of string 
svgPath.setContent(path);

Bước 4: Tạo đối tượng nhóm

Trong phương thức start () , hãy tạo một đối tượng nhóm bằng cách khởi tạo lớp có tên Group , thuộc về gói javafx.scene .

Truyền đối tượng SVGPath (nút) được tạo ở bước trước làm tham số cho hàm tạo của lớp Nhóm. Điều này nên được thực hiện để thêm nó vào nhóm như sau:

Group root = new Group(svgpath);

Bước 5: Tạo một đối tượng cảnh

Tạo một Cảnh bằng cách khởi tạo lớp có tên Cảnh thuộc về gói javafx.scene. Lớp này truyền đối tượng Group (root) đã tạo ở bước trước.

Ngoài đối tượng gốc, bạn cũng có thể truyền hai tham số kép đại diện cho chiều cao và chiều rộng của màn hình cùng với đối tượng của lớp Nhóm như sau.

Scene scene = new Scene(group ,600, 300);

Bước 6: Đặt tiêu đề của sân khấu

Bạn có thể đặt tiêu đề cho vùng hiển thị bằng phương thức setTitle () của lớp Giai đoạn . Các primaryStage là một đối tượng Stage được truyền cho phương thức khởi đầu của lớp cảnh như một tham số.

Sử dụng đối tượng primaryStage , đặt tiêu đề của cảnh là Ứng dụng mẫu như sau.

primaryStage.setTitle("Sample Application");

Bước 7: Thêm cảnh vào sân khấu

Bạn có thể thêm một đối tượng Scene vào sân khấu bằng cách sử dụng phương thức setScene () của lớp có tên Giai đoạn . Thêm đối tượng Scene đã chuẩn bị ở các bước trước bằng cách sử dụng phương pháp này như sau.

primaryStage.setScene(scene);

Bước 8: Hiển thị nội dung của sân khấu

Hiển thị nội dung của cảnh bằng phương thức có tên show () của lớp Sân khấu như sau.

primaryStage.show();

Bước 9: Khởi chạy ứng dụng

Khởi chạy ứng dụng JavaFX bằng cách gọi phương thức tĩnh khởi chạy () của lớp Ứng dụng từ phương thức x main như sau.

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

Thí dụ

Sau đây là một chương trình tạo một hình dạng bằng cách phân tích cú pháp đường dẫn SVG bằng cách sử dụng JavaFX. Lưu mã này trong một tệp có tên SVGExample.java .

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.shape.SVGPath; 
import javafx.stage.Stage; 
        
public class SVGExample extends Application {  
   @Override 
   public void start(Stage stage) { 
      //Creating a SVGPath object 
      SVGPath svgPath = new SVGPath();       
       
      String path = "M 100 100 L 300 100 L 200 300 z";  
      
      //Setting the SVGPath in the form of string 
      svgPath.setContent(path);             
         
      //Creating a Group object  
      Group root = new Group(svgPath); 
               
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);
      
      //Setting title to the Stage
      stage.setTitle("Drawing a Sphere"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   }      
   public static void main(String args[]){ 
      launch(args); 
   } 
}    

Biên dịch và thực thi tệp java đã lưu từ dấu nhắc lệnh bằng các lệnh sau.

javac SVGExample.java 
java SVGExample

Khi thực thi, chương trình trên tạo ra một cửa sổ JavaFX hiển thị một hình tam giác, được vẽ bằng cách phân tích cú pháp đường dẫn SVG như được hiển thị bên dưới.

Vẽ Sphere

 
» Tiếp: Phần tử đường dẫn LineTo 2D
« Trước: Vẽ cung (Arc) 2D
Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên
Copied !!!