檢視原始碼 wxGraphicsPath (wx v2.4.3)

wxGraphicsPath 是一個幾何路徑的原生表示法。

其內容對於各個渲染器而言是特定的且私有的。實例是參考計數的,因此可以像往常一樣賦值。取得有效實例的唯一方法是使用 wxGraphicsContext:createPath/1wxGraphicsRenderer:createPath/1

此類別繼承自以下類別,且可以使用以下類別的函式:

wxWidgets 文件:wxGraphicsPath

摘要

函式

新增一個圓弧(半徑為 r),該圓弧與連接當前點和 (x1, y1) 的線以及連接 (x1, y1) 和 (x2, y2) 的線相切。

在 (x, y) 周圍附加一個半徑為 r 的圓,作為新的封閉子路徑。

從目前點使用兩個控制點和一個終點新增一條三次貝茲曲線。

從目前點使用兩個控制點和一個終點新增一條三次貝茲曲線。

附加一個符合傳入矩形的橢圓,作為新的封閉子路徑。

從目前點新增一條直線到 p

從目前點新增一條直線到 (x, y)。

將另一個路徑新增到目前路徑上。

從目前點使用一個控制點和一個終點新增一條二次貝茲曲線。

附加一個矩形作為新的封閉子路徑。

附加一個圓角矩形作為新的封閉子路徑。

關閉目前的子路徑。

回傳值:如果點在路徑內則為 true。

回傳值:如果點在路徑內則為 true。

取得包含所有點(可能包括控制點)的邊界框。

取得目前路徑的最後一個點,如果尚未設定則為 (0,0)。

p 處開始一個新的子路徑。

在 (x, y) 處開始一個新的子路徑。

使用矩陣轉換此路徑的每個點。

類型

-type wxGraphicsPath() :: wx:wx_object().

函式

連結到此函式

addArc(This, C, R, StartAngle, EndAngle, Clockwise)

檢視原始碼
-spec addArc(This, C, R, StartAngle, EndAngle, Clockwise) -> ok
                when
                    This :: wxGraphicsPath(),
                    C :: {X :: float(), Y :: float()},
                    R :: number(),
                    StartAngle :: number(),
                    EndAngle :: number(),
                    Clockwise :: boolean().
連結到此函式

addArc(This, X, Y, R, StartAngle, EndAngle, Clockwise)

檢視原始碼
-spec addArc(This, X, Y, R, StartAngle, EndAngle, Clockwise) -> ok
                when
                    This :: wxGraphicsPath(),
                    X :: number(),
                    Y :: number(),
                    R :: number(),
                    StartAngle :: number(),
                    EndAngle :: number(),
                    Clockwise :: boolean().

新增一個圓弧。

圓由其中心座標 (x, y) 或 c 及其半徑 r 定義。圓弧從起始角度 startAngleendAngle,順時針或逆時針方向取決於 clockwise 參數的值。

角度以弧度測量,但與通常的數學慣例相反,始終從水平軸 順時針方向測量。

如果對於順時針圓弧,endAngle 小於 startAngle,它將逐漸增加 2*pi 直到大於 startAngle。如果對於逆時針圓弧,endAngle 大於 startAngle,它將逐漸減少 2*pi 直到小於 startAngle

如果設定了目前點,則會在路徑中新增一個初始線段,將目前點連接到圓弧的起點。

連結到此函式

addArcToPoint(This, X1, Y1, X2, Y2, R)

檢視原始碼
-spec addArcToPoint(This, X1, Y1, X2, Y2, R) -> ok
                       when
                           This :: wxGraphicsPath(),
                           X1 :: number(),
                           Y1 :: number(),
                           X2 :: number(),
                           Y2 :: number(),
                           R :: number().

新增一個圓弧(半徑為 r),該圓弧與連接當前點和 (x1, y1) 的線以及連接 (x1, y1) 和 (x2, y2) 的線相切。

如果目前點和圓弧的起點不同,也會附加一條連接這些點的直線。如果在呼叫 addArcToPoint/6 之前沒有目前點,此函式的行為就像在前面呼叫了 MoveToPoint(0, 0)。在呼叫此函式後,目前點將位於圓弧的終點。

連結到此函式

addCircle(This, X, Y, R)

檢視原始碼
-spec addCircle(This, X, Y, R) -> ok
                   when This :: wxGraphicsPath(), X :: number(), Y :: number(), R :: number().

在 (x, y) 周圍附加一個半徑為 r 的圓,作為新的封閉子路徑。

在呼叫此函式後,目前點將位於 (x+r, y)。

連結到此函式

addCurveToPoint(This, C1, C2, E)

檢視原始碼
-spec addCurveToPoint(This, C1, C2, E) -> ok
                         when
                             This :: wxGraphicsPath(),
                             C1 :: {X :: float(), Y :: float()},
                             C2 :: {X :: float(), Y :: float()},
                             E :: {X :: float(), Y :: float()}.

從目前點使用兩個控制點和一個終點新增一條三次貝茲曲線。

如果在呼叫 addCurveToPoint/7 之前沒有目前點,此函式的行為就像在前面呼叫了 MoveToPoint(c1)。

連結到此函式

addCurveToPoint(This, Cx1, Cy1, Cx2, Cy2, X, Y)

檢視原始碼
-spec addCurveToPoint(This, Cx1, Cy1, Cx2, Cy2, X, Y) -> ok
                         when
                             This :: wxGraphicsPath(),
                             Cx1 :: number(),
                             Cy1 :: number(),
                             Cx2 :: number(),
                             Cy2 :: number(),
                             X :: number(),
                             Y :: number().

從目前點使用兩個控制點和一個終點新增一條三次貝茲曲線。

如果在呼叫 addCurveToPoint/7 之前沒有目前點,此函式的行為就像在前面呼叫了 MoveToPoint(cx1, cy1)。

連結到此函式

addEllipse(This, X, Y, W, H)

檢視原始碼
-spec addEllipse(This, X, Y, W, H) -> ok
                    when
                        This :: wxGraphicsPath(),
                        X :: number(),
                        Y :: number(),
                        W :: number(),
                        H :: number().

附加一個符合傳入矩形的橢圓,作為新的封閉子路徑。

在呼叫此函式後,目前點將位於 (x+w, y+h/2)。

連結到此函式

addLineToPoint(This, P)

檢視原始碼
-spec addLineToPoint(This, P) -> ok when This :: wxGraphicsPath(), P :: {X :: float(), Y :: float()}.

從目前點新增一條直線到 p

如果在呼叫 addLineToPoint/3 之前尚未設定目前點,此函式的行為將如同 moveToPoint/3

連結到此函式

addLineToPoint(This, X, Y)

檢視原始碼
-spec addLineToPoint(This, X, Y) -> ok when This :: wxGraphicsPath(), X :: number(), Y :: number().

從目前點新增一條直線到 (x, y)。

如果在呼叫 addLineToPoint/3 之前尚未設定目前點,此函式的行為將如同 moveToPoint/3

-spec addPath(This, Path) -> ok when This :: wxGraphicsPath(), Path :: wxGraphicsPath().

將另一個路徑新增到目前路徑上。

在呼叫此函式後,目前點將位於新增路徑的目前點。對於 Direct2D,當呼叫此函式時,要附加的路徑不應包含已開始的非空子路徑。

連結到此函式

addQuadCurveToPoint(This, Cx, Cy, X, Y)

檢視原始碼
-spec addQuadCurveToPoint(This, Cx, Cy, X, Y) -> ok
                             when
                                 This :: wxGraphicsPath(),
                                 Cx :: number(),
                                 Cy :: number(),
                                 X :: number(),
                                 Y :: number().

從目前點使用一個控制點和一個終點新增一條二次貝茲曲線。

如果在呼叫 addQuadCurveToPoint/5 之前沒有目前點,此函式的行為就像在前面呼叫了 MoveToPoint(cx, cy)。

連結到此函式

addRectangle(This, X, Y, W, H)

檢視原始碼
-spec addRectangle(This, X, Y, W, H) -> ok
                      when
                          This :: wxGraphicsPath(),
                          X :: number(),
                          Y :: number(),
                          W :: number(),
                          H :: number().

附加一個矩形作為新的封閉子路徑。

在呼叫此函式後,目前點將位於 (x, y)。

連結到此函式

addRoundedRectangle(This, X, Y, W, H, Radius)

檢視原始碼
-spec addRoundedRectangle(This, X, Y, W, H, Radius) -> ok
                             when
                                 This :: wxGraphicsPath(),
                                 X :: number(),
                                 Y :: number(),
                                 W :: number(),
                                 H :: number(),
                                 Radius :: number().

附加一個圓角矩形作為新的封閉子路徑。

如果 radius 等於 0,此函式的行為將如同 addRectangle/5,否則在呼叫此函式後,目前點將位於 (x+w, y+h/2)。

-spec closeSubpath(This) -> ok when This :: wxGraphicsPath().

關閉目前的子路徑。

在呼叫此函式後,目前點將位於子路徑的連接終點。

-spec contains(This, C) -> boolean() when This :: wxGraphicsPath(), C :: {X :: float(), Y :: float()}.

等同於 contains(This, C, [])

-spec contains(This, X, Y) -> boolean() when This :: wxGraphicsPath(), X :: number(), Y :: number();
              (This, C, [Option]) -> boolean()
                  when
                      This :: wxGraphicsPath(),
                      C :: {X :: float(), Y :: float()},
                      Option :: {fillStyle, wx:wx_enum()}.

回傳值:如果點在路徑內則為 true。

-spec contains(This, X, Y, [Option]) -> boolean()
                  when
                      This :: wxGraphicsPath(),
                      X :: number(),
                      Y :: number(),
                      Option :: {fillStyle, wx:wx_enum()}.

回傳值:如果點在路徑內則為 true。

-spec getBox(This) -> {X :: float(), Y :: float(), W :: float(), H :: float()}
                when This :: wxGraphicsPath().

取得包含所有點(可能包括控制點)的邊界框。

-spec getCurrentPoint(This) -> {X :: float(), Y :: float()} when This :: wxGraphicsPath().

取得目前路徑的最後一個點,如果尚未設定則為 (0,0)。

-spec moveToPoint(This, P) -> ok when This :: wxGraphicsPath(), P :: {X :: float(), Y :: float()}.

p 處開始一個新的子路徑。

連結到此函式

moveToPoint(This, X, Y)

檢視原始碼
-spec moveToPoint(This, X, Y) -> ok when This :: wxGraphicsPath(), X :: number(), Y :: number().

在 (x, y) 處開始一個新的子路徑。

連結到此函式

transform(This, Matrix)

檢視原始碼
-spec transform(This, Matrix) -> ok
                   when This :: wxGraphicsPath(), Matrix :: wxGraphicsMatrix:wxGraphicsMatrix().

使用矩陣轉換此路徑的每個點。

對於 Direct2D,當呼叫此函式時,目前路徑不應包含已開始的非空子路徑。