
- JavaFX 教程
- JavaFX - 首頁
- JavaFX - 概述
- JavaFX 安裝和架構
- JavaFX - 環境
- JavaFX - 使用 Netbeans 安裝
- JavaFX - 使用 Eclipse 安裝
- JavaFX - 使用 Visual Studio Code 安裝
- JavaFX - 架構
- JavaFX - 應用
- JavaFX 二維圖形
- JavaFX - 二維圖形
- JavaFX - 繪製直線
- JavaFX - 繪製矩形
- JavaFX - 繪製圓角矩形
- JavaFX - 繪製圓形
- JavaFX - 繪製橢圓
- JavaFX - 繪製多邊形
- JavaFX - 繪製折線
- JavaFX - 繪製三次貝塞爾曲線
- JavaFX - 繪製二次貝塞爾曲線
- JavaFX - 繪製弧形
- JavaFX - 繪製 SVG 路徑
- JavaFX 二維物件的屬性
- JavaFX - 描邊型別屬性
- JavaFX - 描邊寬度屬性
- JavaFX - 描邊填充屬性
- JavaFX - 描邊屬性
- JavaFX - 描邊線連線屬性
- JavaFX - 描邊斜接限制屬性
- JavaFX - 描邊線端點屬性
- JavaFX - 平滑屬性
- JavaFX 路徑物件
- JavaFX - 路徑物件
- JavaFX - LineTo 路徑物件
- JavaFX - HLineTo 路徑物件
- JavaFX - VLineTo 路徑物件
- JavaFX - QuadCurveTo 路徑物件
- JavaFX - CubicCurveTo 路徑物件
- JavaFX - ArcTo 路徑物件
- JavaFX 顏色和紋理
- JavaFX - 顏色
- JavaFX - 線性漸變圖案
- JavaFX - 徑向漸變圖案
- JavaFX 文字
- JavaFX - 文字
- JavaFX 特效
- JavaFX - 特效
- JavaFX - 顏色調整特效
- JavaFX - 顏色輸入特效
- JavaFX - 圖片輸入特效
- JavaFX - 混合特效
- JavaFX - 光暈特效
- JavaFX - 輝光特效
- JavaFX - 方框模糊特效
- JavaFX - 高斯模糊特效
- JavaFX - 運動模糊特效
- JavaFX - 反射特效
- JavaFX - 棕褐色調特效
- JavaFX - 陰影特效
- JavaFX - 投影陰影特效
- JavaFX - 內陰影特效
- JavaFX - 光照特效
- JavaFX - 遠光源特效
- JavaFX - 聚光燈特效
- JavaFX - 點光源特效
- JavaFX - 位移對映
- JavaFX - 透視變換
- JavaFX 動畫
- JavaFX - 動畫
- JavaFX - 旋轉轉換
- JavaFX - 縮放轉換
- JavaFX - 平移轉換
- JavaFX - 淡入淡出轉換
- JavaFX - 填充轉換
- JavaFX - 描邊轉換
- JavaFX - 順序轉換
- JavaFX - 並行轉換
- JavaFX - 暫停轉換
- JavaFX - 路徑轉換
- JavaFX 圖片
- JavaFX - 圖片
- JavaFX 三維圖形
- JavaFX - 三維圖形
- JavaFX - 建立長方體
- JavaFX - 建立圓柱體
- JavaFX - 建立球體
- JavaFX 事件處理
- JavaFX - 事件處理
- JavaFX - 使用便捷方法
- JavaFX - 事件過濾器
- JavaFX - 事件處理器
- JavaFX UI 控制元件
- JavaFX - UI 控制元件
- JavaFX - 列表檢視
- JavaFX - 手風琴
- JavaFX - 按鈕欄
- JavaFX - 選擇框
- JavaFX - HTML 編輯器
- JavaFX - 選單欄
- JavaFX - 分頁
- JavaFX - 進度指示器
- JavaFX - 滾動面板
- JavaFX - 分隔符
- JavaFX - 滑塊
- JavaFX - 微調器
- JavaFX - 分割面板
- JavaFX - 表格檢視
- JavaFX - 標籤頁面板
- JavaFX - 工具欄
- JavaFX - 樹檢視
- JavaFX - 標籤
- JavaFX - 複選框
- JavaFX - 單選按鈕
- JavaFX - 文字欄位
- JavaFX - 密碼欄位
- JavaFX - 檔案選擇器
- JavaFX - 超連結
- JavaFX - 工具提示
- JavaFX - 警報框
- JavaFX - 日期選擇器
- JavaFX - 文字區域
- JavaFX 圖表
- JavaFX - 圖表
- JavaFX - 建立餅圖
- JavaFX - 建立折線圖
- JavaFX - 建立區域圖
- JavaFX - 建立條形圖
- JavaFX - 建立氣泡圖
- JavaFX - 建立散點圖
- JavaFX - 建立堆疊區域圖
- JavaFX - 建立堆疊條形圖
- JavaFX 佈局面板
- JavaFX - 佈局面板
- JavaFX - HBox 佈局
- JavaFX - VBox 佈局
- JavaFX - BorderPane 佈局
- JavaFX - StackPane 佈局
- JavaFX - TextFlow 佈局
- JavaFX - AnchorPane 佈局
- JavaFX - TilePane 佈局
- JavaFX - GridPane 佈局
- JavaFX - FlowPane 佈局
- JavaFX CSS
- JavaFX - CSS
- JavaFX 多媒體
- JavaFX - 處理多媒體
- JavaFX - 播放影片
- JavaFX 有用資源
- JavaFX - 快速指南
- JavaFX - 有用資源
- JavaFX - 討論
JavaFX - 二維圖形
在上一章中,我們學習了 JavaFX 的基本應用,瞭解瞭如何建立一個空視窗以及如何在 JavaFX 的 XY 平面上繪製一條直線。除了直線,我們還可以繪製其他幾種二維圖形。
二維圖形
一般來說,二維圖形是在 XY 平面上繪製的幾何圖形,包括直線、矩形、圓形等。
使用 JavaFX 庫,您可以繪製:
預定義圖形,例如直線、矩形、圓形、橢圓、多邊形、折線、三次貝塞爾曲線、二次貝塞爾曲線、弧形。
路徑元素,例如 MoveTO 路徑元素、直線、水平線、垂直線、三次貝塞爾曲線、二次貝塞爾曲線、弧形。
除此之外,您還可以透過解析 SVG 路徑來繪製二維圖形。
上述每個二維圖形都由一個類表示,所有這些類都屬於包 **javafx.scene.shape**。名為 **Shape** 的類是 JavaFX 中所有二維圖形的基類。
在 JavaFX 中建立二維圖形
要建立圖表,您需要:
- 例項化所需圖形的相應類。
- 設定圖形的屬性。
- 將圖形物件新增到組中。
例項化相應類
要建立二維圖形,首先需要例項化其相應的類。例如,如果要建立一個圓形,需要如下例項化名為 Circle 的類:
Circle circle = new Circle();
設定圖形的屬性
例項化類之後,需要使用 setter 方法為圖形設定屬性。例如,可以使用以下 setter 方法設定 Circle 類中心的 X、Y 座標及其半徑:
// Setting the Properties of a circle circle.setCenterX(300.0f); circle.setCenterY(135.0f); circle.setRadius(100.0f);
將圖形物件新增到組中
最後,需要將圓形物件作為建構函式的引數傳遞給組,如下所示。
//Creating a Group object Group root = new Group(circle);
JavaFX 中提供的各種二維圖形
下表列出了 JavaFX 提供的各種圖形(類)。
序號 | 圖形和描述 |
---|---|
1 |
直線
直線是連線兩點的幾何結構。包 **javafx.scene.shape** 的 **Line** 類表示 XY 平面上的直線。 |
2 |
矩形
一般來說,矩形是一個四邊形,它有兩對平行且相交的邊,所有內角都是直角。在 JavaFX 中,矩形由名為 **Rectangle** 的類表示。此類屬於包 **javafx.scene.shape**。 |
3 |
圓角矩形
在 JavaFX 中,您可以繪製具有尖銳邊緣或圓弧邊緣的矩形,具有圓弧邊緣的矩形稱為圓角矩形。 |
4 |
圓形
圓形是由一條形成閉合環路的線構成的,環路上的每個點與中心點的距離都相同。在 JavaFX 中,圓形由名為 **Circle** 的類表示。此類屬於包 **javafx.scene.shape**。 |
5 |
橢圓
橢圓由兩點定義,每個點稱為焦點。如果取橢圓上的任意一點,則到焦點點的距離之和為常數。橢圓的大小由這兩個距離之和決定。 在 JavaFX 中,橢圓由名為 **Ellipse** 的類表示。此類屬於包 **javafx.scene.shape**。 |
6 |
多邊形
由多個共面的線段首尾相連形成的閉合圖形。在 JavaFX 中,多邊形由名為 **Polygon** 的類表示。此類屬於包 **javafx.scene.shape**。 |
7 |
折線
折線與多邊形相同,只是折線末端不閉合。或者,是由一個或多個線段組成的連續線。在 JavaFX 中,折線由名為 **Polyline** 的類表示。此類屬於包 **javafx.scene.shape**。 |
8 |
三次貝塞爾曲線
三次貝塞爾曲線是 XY 平面上的三次貝塞爾引數曲線。在 JavaFX 中,三次貝塞爾曲線由名為 **CubicCurve** 的類表示。此類屬於包 **javafx.scene.shape**。 |
9 |
二次貝塞爾曲線
二次貝塞爾曲線是 XY 平面上的二次貝塞爾引數曲線。在 JavaFX 中,二次貝塞爾曲線由名為 **QuadCurve** 的類表示。此類屬於包 **javafx.scene.shape**。 |
10 |
弧形
弧形是曲線的一部分。在 JavaFX 中,弧形由名為 **Arc** 的類表示。此類屬於包 **javafx.scene.shape**。 弧形的型別除此之外,我們還可以繪製三種類型的弧形:**開放型、弦形、圓形**。 |
11 |
SVGPath
在 JavaFX 中,我們可以透過解析 SVG 路徑來構建影像。此類圖形由名為 **SVGPath** 的類表示。此類屬於包 **javafx.scene.shape**。此類具有名為 **content** 的字串型別屬性。它表示應從中繪製圖像的 SVG 路徑編碼字串。 |
二維物件的屬性
對於所有二維物件,您可以設定各種屬性,例如填充、描邊、StrokeType 等。以下部分討論二維物件的各種屬性。
我們將在本教程的後續部分詳細學習這些屬性。
二維物件的運算
如果我們將多個圖形新增到一個組中,則第一個圖形將被第二個圖形重疊,如下所示。

除了變換(旋轉、縮放、平移等)、轉換(動畫)之外,您還可以對二維物件執行三種運算,即:**並集、差集**和**交集**。
**並集運算:**此運算將兩個或多個圖形作為輸入,並返回它們佔據的區域。
交集運算:此運算以兩個或多個形狀作為輸入,並返回它們之間的交集區域。
減法運算:此運算以兩個或多個形狀作為輸入。然後,它返回第一個形狀的面積,但不包括與第二個形狀重疊的面積。