- M:始點座標 (moveto).
- L:自目前座標點繪製直線至指定座標點 (lineto).
- H:自目前座標點繪製水平直線至指定水平座標點 (horizontal lineto).
- V:自目前座標點繪製垂直直線至指定垂直座標點 (vertical lineto).
- C:自目前座標點繪製貝茲曲線至指定座標點 (curveto).
- S:自目前座標點繪製平滑貝茲曲線至指定座標點 (smooth curveto).
- Q:自目前座標點繪製二次貝茲曲線至指定座標點 (quadratic Bezier curve).
- T:自目前座標點繪製平滑二次貝茲曲線至指定座標點 (smooth quadratic Bezier curveto).
- A:自目前座標點繪製橢圓弧形至指定座標點 (elliptical arc).
- Z:關閉路徑,將目前座標點與始點連接起來以關閉SVG Path (closepath).
public SVGPath()
並以SVGPath類別的setContent()方法設定SVG Path。
以下範例示範以SVGPath類別的setContent()方法設定SVG Path,以繪製SVG二維向量圖形。SVG Path以字串的方式表描述上述參數,其中:
- M150 50:代表始點座標為 (150, 50).
- L60 220:代表自 (150, 50) 繪製直線至 (60, 220).
- L240 220:代表自 (60, 220) 繪製直線至 (240, 220).
- Z:關閉路徑.
SVGPath svg = new SVGPath(); svg.setFill(Color.WHITE); svg.setStroke(Color.RED); svg.setStrokeWidth(3.0); // 設定SVG Path svg.setContent("M150 50 L60 220 L240 220 Z"); Group group = new Group(); group.getChildren().add(svg); ...【執行結果】
以下範例示範以SVGPath類別的setContent()方法設定SVG Path,其中以大寫表示絕對座標、小寫表示相對座標,例如:
- M 50 350 l 150 -300:代表自 (50, 350) 繪製直線至相對座標 (150, -300),則自 (50, 350) 繪製直線至 (200, 50).
- M 200 50 l 150 300:代表自 (200, 50) 繪製直線至相對座標 (150, 300),則自 (200, 50) 繪製直線至 (350, 350).
- M 50 350 q 150 -300 300 0:代表自 (50, 350) 繪製二次貝茲曲線至相對座標 (300, 0),其中貝茲控制點為相對座標 (150, -300),則自 (50, 350) 繪製二次貝茲曲線至 (350, 350),其中貝茲控制點為 (200, 50).
SVGPath svg1 = new SVGPath(); svg1.setFill(Color.WHITE); svg1.setStroke(Color.RED); svg1.setStrokeWidth(5.0); // 設定SVG Path svg1.setContent("M 50 350 l 150 -300"); SVGPath svg2 = new SVGPath(); svg2.setFill(Color.WHITE); svg2.setStroke(Color.GREEN); svg2.setStrokeWidth(5.0); // 設定SVG Path svg2.setContent("M 200 50 l 150 300"); SVGPath svg3 = new SVGPath(); svg3.setFill(Color.WHITE); svg3.setStroke(Color.BLUE); svg3.setStrokeWidth(5.0); // 設定SVG Path svg3.setContent("M 50 350 q 150 -300 300 0"); Group group = new Group(); group.getChildren().addAll(svg1, svg2, svg3); ...【執行結果】
[1] Java Official Web Site:http://www.oracle.com/technetwork/java/index.html
[2] JavaFX:http://www.oracle.com/technetwork/java/javafx
[3] JavaFX 8.0 API Specification.
[4] Java Platform, Standard Edition 8 API Specification.
© Chia-Hui Huang
有點像在畫AutoCAD的感覺…
回覆刪除