Java: 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

Cung là một phần của đường cong. Nó được mô tả bởi các thuộc tính sau:

  • chiều dài - Khoảng cách dọc theo cung tròn.
  • angle - Góc mà đường cong tạo nên tại tâm của đường tròn.
  • radiusX - Chiều rộng của hình Elip đầy đủ mà cung hiện tại là một phần.
  • radiusY - Chiều cao của hình Elip đầy đủ mà cung hiện tại là một phần của nó.

ARC

Trong JavaFX, một cung được đại diện bởi một lớp có tên là Arc. 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 vòng cung trong JavaFX.

Lớp này có một vài thuộc tính của kiểu dữ liệu kép, cụ thể là:

  • centerX - Tọa độ x của tâm cung tròn.
  • centerY - Tọa độ y của tâm cung tròn.
  • radiusX - Chiều rộng của hình elip đầy đủ mà cung hiện tại là một phần.
  • radiusY - Chiều cao của hình elip đầy đủ mà cung hiện tại là một phần.
  • startAngle - Góc bắt đầu của cung tính bằng độ.
  • chiều dài - Mức độ góc của cung tính bằng độ.

Để vẽ một cung tròn, bạn cần truyền các giá trị cho các thuộc tính này, bằng cách chuyển chúng đến hàm tạo của lớp này, theo cùng một thứ tự, tại thời điểm khởi tạo, như được hiển thị bên dưới:

Circle circle = new Circle(centerX, centerY, radiusX, radiusY);

Hoặc, bằng cách sử dụng các phương pháp setter tương ứng của chúng như sau:

setCenterX(value); 
setCenterY(value); 
setRadiusX(value); 
setRadiusY(value);

Trong JavaFX, bạn có thể vẽ ba loại cung cụ thể là:

  • Cung Mở - Một cung hoàn toàn không đóng được gọi là một cung mở.
  • Cung đóng - Là một loại cung được đóng bởi một đường thẳng.
  • Cung Tròn - Cung tròn là một cung được đóng bằng cách nối điểm bắt đầu và điểm kết thúc vào tâm của hình elip.

Mở vòng kín

Bạn có thể đặt kiểu cung bằng phương thức setType() bằng cách chuyển bất kỳ thuộc tính nào sau đây: ArcType.OPEN, ArcType.CHORD, ArcType.Round.

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

Để vẽ một vòng cung 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 Arc

Bạn có thể tạo một vòng cung trong JavaFX bằng cách khởi tạo lớp có tên Arc thuộc về một gói javafx.scene.shape . Bạn có thể khởi tạo lớp này như hình dưới đây.

//Creating an object of the class Arc         
Arc arc = new Arc();

Bước 3: Đặt thuộc tính cho Arc

Chỉ định tọa độ x, y của tâm hình Elip (trong đó cung này là một phần của). Các tọa độ này bao gồm - radiusX, radiusY, góc bắt đầu và chiều dài của cung bằng cách sử dụng các phương pháp setter tương ứng của chúng như được hiển thị trong khối mã sau.

Bạn cũng có thể đặt loại cung (vòng, hợp âm mở) bằng cách sử dụng phương thức setType () .

//Setting the properties of the arc 
arc.setCenterX(300.0f); 
arc.setCenterY(150.0f); 
arc.setRadiusX(90.0f); 
arc.setRadiusY(90.0f); 
arc.setStartAngle(40.0f); 
arc.setLength(239.0f); 
arc.setType(ArcType.ROUND);

Bước 4: Thiết lập loại hồ quang

Bạn có thể đặt kiểu cung bằng phương thức setType () như được hiển thị trong khối mã sau.

//Setting the type of the arc 
arc.setType(ArcType.ROUND);

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

Trong phương thức start (), 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 Arc (nút) đã 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ư hình dưới đây -

Group root = new Group(arc);

Bước 6: 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 7: Đặ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 8: 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 9: 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 10: 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 chính như sau.

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

Thí dụ

Sau đây là một chương trình tạo ra một cung tròn. Lưu mã này trong một tệp với tên ArcExample.java .

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene;
import javafx.stage.Stage; 
import javafx.scene.shape.Arc;  
import javafx.scene.shape.ArcType; 
        
public class ArcExample extends Application { 
   @Override 
   public void start(Stage stage) { 
      //Drawing an arc 
      Arc arc = new Arc(); 
         
      //Setting the properties of the arc 
      arc.setCenterX(300.0f); 
      arc.setCenterY(150.0f); 
      arc.setRadiusX(90.0f); 
      arc.setRadiusY(90.0f); 
      arc.setStartAngle(40.0f); 
      arc.setLength(239.0f);  
      
      //Setting the type of the arc 
      arc.setType(ArcType.ROUND);         
         
      //Creating a Group object  
      Group root = new Group(arc); 
         
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Drawing an Arc"); 
         
      //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 ArcExample.java 
java ArcExample

Khi thực thi, chương trình trên tạo ra một cửa sổ JavaFX hiển thị một vòng cung như thể hiện trong ảnh chụp màn hình sau.

Vẽ Arc

» Tiếp: Vẽ hình SVG 2D
« Trước: Vẽ đường cong bậc 2 (QuadCurve) 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 !!!