Java: Vẽ hình elip 2D

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Hình Elip được xác định bởi hai điểm, mỗi điểm được gọi là tiêu điểm. Nếu lấy bất kỳ điểm nào trên Ellipse, tổng khoảng cách đến các điểm lấy nét là không đổi. Kích thước của Ellipse được xác định bằng tổng của hai khoảng cách này. Tổng các khoảng cách này bằng độ dài của trục chính (đường kính dài nhất của hình elip). Trên thực tế, một hình tròn là một trường hợp đặc biệt của một hình Elip.

Hình elip có ba thuộc tính là

  • Center - Một điểm bên trong Ellipse là điểm giữa của đoạn thẳng nối hai foci. Nơi giao nhau của trục chính và trục phụ.

  • Trục chính - Đường kính dài nhất của hình elip.

  • Trục nhỏ - Đường kính ngắn nhất của hình elip.

Tham số hình elip

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

Lớp này có 4 thuộc tính của kiểu dữ liệu kép là:

  • centerX - Tọa độ x của tâm hình elip tính bằng pixel.

  • centerY - Tọa độ y của tâm hình elip tính bằng pixel.

  • radiusX - Chiều rộng của pixel hình elip.

  • radiusY - Chiều cao của pixel hình elip.

Để vẽ một hình elip, 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 tới hàm tạo của lớp này, theo cùng một thứ tự, tại thời điểm 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);

Các bước để vẽ hình elip

Làm theo các bước dưới đây để vẽ một hình Elip trong JavaFX.

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ư hình dưới đây.

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

Bước 2: Tạo hình elip

Bạn có thể tạo một Ellipse trong JavaFX bằng cách khởi tạo lớp có tên Ellipse 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 Ellipse object         
Ellipse ellipse = new Ellipse(); 

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

Chỉ định tọa độ x, y của tâm Ellipse → chiều rộng của Ellipse dọc theo trục x và trục y (trục chính và trục nhỏ), của đường tròn bằng cách đặt các thuộc tính X, Y, RadiusX và RadiusY.

Điều này có thể được thực hiện bằng cách sử dụng các phương thức setter tương ứng của chúng như được hiển thị trong khối mã sau.

ellipse.setCenterX(300.0f); 
ellipse.setCenterY(150.0f); 
ellipse.setRadiusX(150.0f); 
ellipse.setRadiusY(75.0f);

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 Ellipse (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ư được hiển thị trong khối mã sau:

Group root = new Group(ellipse);

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ị ở 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 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 một Ellipse bằng JavaFX. Lưu mã này trong một tệp với tên EllipseExample.java .

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.stage.Stage; 
import javafx.scene.shape.Ellipse; 
         
public class EllipseExample extends Application { 
   @Override 
   public void start(Stage stage) { 
      //Drawing an ellipse 
      Ellipse ellipse = new Ellipse(); 
         
      //Setting the properties of the ellipse 
      ellipse.setCenterX(300.0f); 
      ellipse.setCenterY(150.0f); 
      ellipse.setRadiusX(150.0f); 
      ellipse.setRadiusY(75.0f); 
         
      //Creating a Group object  
      Group root = new Group(ellipse); 
         
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300); 
      
      //Setting title to the Stage 
      stage.setTitle("Drawing an Ellipse"); 
         
      //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 EllipseExample.java 
java EllipseExample

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 elip như hình dưới đây.

Drwaing Ellipse

» Tiếp: Vẽ hình đa giác (Polygon) 2D
« Trước: Vẽ đường tròn/hình tròn 2D
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!