JavaFX 圓弧

2020-08-04 09:47 更新

JavaFX教程 - JavaFX圓弧

屬性:

屬性 意義
centerX 定義圓弧中心點的 X 坐標。
centeY 定義圓弧中心點的 Y 坐標。
radiusX 定義整個橢圓的整體寬度(水平半徑),其中此弧線是部分截面。
radiusY 定義整個橢圓的整體寬度(垂直半徑),其中此弧線是部分截面。
startAngle 定義圓弧的起始角度(以度為單位)。
length 定義圓弧的角度范圍(以度為單位)。
type 公共最終對象屬性 <ArcType>  類型屬性

方法:

方法  意義  默認值
setCenterX 設置屬性中心 X 的值。  0.0
getCenterX 獲取屬性中心 X 的值。
 0.0
centerXProperty 定義圓弧中心點的 X 坐標。
 0.0
setCenterY 設置屬性中心Y的值。
 0.0
getCenterY 獲取屬性中心Y的值。
 0.0
centerYProperty 定義圓弧中心點的 Y 坐標。
 0.0
setRadiusX 設置屬性 radius X 的值。
 0.0
getRadiusX 獲取屬性 radiusX 的值。
 0.0
radiusXProperty 定義整個橢圓的整體寬度(水平半徑),其中此弧線是部分截面。
 0.0
setRadiusY 設置屬性半徑Y的值。
 0.0
getRadiusY 獲取屬性半徑Y的值。
 0.0
radiusYProperty 定義整個橢圓的整體高度(垂直半徑),其中此弧線是部分截面。
 0.0
setStartAngle 設置屬性 startAngle 的值。
 0.0
getStartAngle 獲取屬性 startAngle 的值。
 0.0
startAngleProperty 定義圓弧的起始角度(以度為單位)。
 0.0
setLength 設置屬性長度的值。
 0.0
getLength 獲取屬性長度的值。
 0.0
lengthProperty 定義圓弧的角度范圍(以度為單位)。
 0.0
setType 設置屬性類型的值。
 OPEN
getType 獲取屬性類型的值。
 OPEN
typeProperty 定義圓弧的閉合類型  OPEN
toString 返回此對象的字符串表示形式。
 

以下代碼顯示如何繪制以50,50為中心,半徑為25并從角度45延伸到角度315(270度長)的圓弧。

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.Arc;
import javafx.scene.shape.ArcType;
import javafx.stage.Stage;

public class Main extends Application {
    public static void main(String[] args) {
        Application.launch(args);
    }
    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Text Fonts");

        Group g = new Group();
        Scene scene = new Scene(g, 550, 250,Color.web("0x0000FF",1.0));

        Arc arc = new Arc();
        arc.setCenterX(50.0f);
        arc.setCenterY(50.0f);
        arc.setRadiusX(25.0f);
        arc.setRadiusY(25.0f);
        arc.setStartAngle(45.0f);
        arc.setLength(270.0f);
        arc.setType(ArcType.ROUND);
        
        g.getChildren().add(arc);
        
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

上面的代碼生成以下結果。

null

Circle類創(chuàng)建一個新的圓,其中指定的半徑和中心位置以像素為單位。

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;

public class Main extends Application {
    public static void main(String[] args) {
        Application.launch(args);
    }
    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Text Fonts");
        Group root = new Group();
        Scene scene = new Scene(root, 550, 250,Color.web("0x0000FF"));

        Circle circle = new Circle();
        circle.setCenterX(100.0f);
        circle.setCenterY(100.0f);
        circle.setRadius(50.0f);
        
        root.getChildren().add(circle);

        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

上面的代碼生成以下結果。

null

例子

以下代碼顯示了如何使用Circle構造函數(shù)傳遞半徑和中心。

import java.util.List;

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;

public class Main extends Application {

    public static void main(String[] args) {
        Application.launch(args);
    }
    
    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Title");
        
        final Circle circ = new Circle(40, 40, 30);
        final Group root = new Group(circ);
        final Scene scene = new Scene(root, 400, 300);        
              
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

上面的代碼生成以下結果。

null

例2

圓與DropShadow

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.effect.DropShadow;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class Main extends Application {
  public static void main(String[] args) {
    Application.launch(args);
  }

  @Override
  public void start(Stage primaryStage) {
    primaryStage.setTitle("");
    Group root = new Group();
    Scene scene = new Scene(root, 300, 250, Color.WHITE);

    Group g = new Group();

    DropShadow ds1 = new DropShadow();
    ds1.setOffsetY(4.0);

    Circle c = new Circle();
    c.setEffect(ds1);
    c.setCenterX(50.0);
    c.setCenterY(125.0);
    c.setRadius(30.0);
    c.setFill(Color.RED);
    c.setCache(true);


    g.getChildren().add(c);
    

    root.getChildren().add(g);
    primaryStage.setScene(scene);
    primaryStage.show();
  }
}

getBoundsInParent()方法返回節(jié)點的邊界區(qū)域,例如其寬度和高度。

對于高度和寬度的 getBoundsInParent()計算包括節(jié)點的實際尺寸加上任何效果,平移和變換。例如,具有陰影效果的形狀通過包括陰影增加其寬度。

上面的代碼生成以下結果。

null


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號