共用方式為


CD2DGeometry 類別

ID2D1Geometry 的包裝函式。

語法

class CD2DGeometry : public CD2DResource;

成員

公用建構函式

名稱 描述
CD2DGeometry::CD2DGeometry 建構 CD2DGeometry 物件。
CD2DGeometry::~CD2DGeometry 解構函式。 當 D2D geometry 物件被終結時呼叫。

公用方法

名稱 描述
CD2DGeometry::Attach 將現有的資源介面附加至 物件
CD2DGeometry::CombineWithGeometry 將此幾何與指定的幾何結合,並將結果儲存在 ID2D1SimplifiedGeometrySink 中。
CD2DGeometry::CompareWithGeometry 描述這個幾何與指定幾何之間的交集。 比較是使用指定的扁平化容錯來執行。
CD2DGeometry::ComputeArea 在指定的矩陣轉換幾何區域,並使用指定的容錯進行扁平化之後,計算幾何的區域。
CD2DGeometry::ComputeLength 計算幾何的長度,就好像每個線段都取消標籤成一條線。
CD2DGeometry::ComputePointAtLength 在指定的矩陣轉換到指定的矩陣,並使用指定的容錯扁平化之後,計算沿著幾何的指定距離的點和正切向量。
CD2DGeometry::D estroy 終結 CD2DGeometry 物件。 (覆寫 CD2DResource::D estroy .)
CD2DGeometry::D etach 從 物件中斷連結資源介面
CD2DGeometry::FillContainsPoint 指出幾何所填滿的區域是否包含指定的扁平化容錯指定的點。
CD2DGeometry::Get 傳回 ID2D1Geometry 介面
CD2DGeometry::GetBounds
CD2DGeometry::GetWidenedBounds 取得幾何的界限之後,它已由指定的筆劃寬度和樣式擴展,並由指定的矩陣轉換。
CD2DGeometry::IsValid 檢查資源有效性 (覆寫 CD2DResource::IsValid .)
CD2DGeometry::Outline 計算幾何的外框,並將結果寫入 ID2D1SimplifiedGeometrySink。
CD2DGeometry::簡化 建立只包含線條和 (選擇性) 立方貝茲曲線的簡化幾何版本,並將結果寫入 ID2D1SimplifiedGeometrySink。
CD2DGeometry::StrokeContainsPoint 判斷幾何筆劃是否包含指定筆劃粗細、樣式和轉換的指定點。
CD2DGeometry::Tessellate 建立一組順時針形三角形,其會在使用指定的矩陣進行轉換後覆蓋幾何,並使用指定的容錯壓平。
CD2DGeometry::Widen 透過指定的筆劃擴大幾何,並將結果寫入 ID2D1SimplifiedGeometrySink 之後,由指定的矩陣轉換,並使用指定的容錯扁平化。

公用運算子

名稱 描述
CD2DGeometry::operator ID2D1Geometry* 傳回 ID2D1Geometry 介面

受保護的資料成員

名稱 描述
CD2DGeometry::m_pGeometry ID2D1Geometry 的指標。

繼承階層架構

CObject

CD2DResource

CD2DGeometry

需求

標頭: afxrendertarget.h

CD2DGeometry::~CD2DGeometry

解構函式。 當 D2D geometry 物件被終結時呼叫。

virtual ~CD2DGeometry();

CD2DGeometry::Attach

將現有的資源介面附加至 物件

void Attach(ID2D1Geometry* pResource);

參數

pResource
現有的資源介面。 不可以是 Null

CD2DGeometry::CD2DGeometry

建構 CD2DGeometry 物件。

CD2DGeometry(
    CRenderTarget* pParentTarget,
    BOOL bAutoDestroy = TRUE);

參數

pParentTarget
轉譯目標的指標。

bAutoDestroy
表示物件將會由擁有者終結(pParentTarget)。

CD2DGeometry::CombineWithGeometry

將此幾何與指定的幾何結合,並將結果儲存在 ID2D1SimplifiedGeometrySink 中。

BOOL CombineWithGeometry(
    CD2DGeometry& inputGeometry,
    D2D1_COMBINE_MODE combineMode,
    const D2D1_MATRIX_3X2_F& inputGeometryTransform,
    ID2D1SimplifiedGeometrySink* geometrySink,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

參數

inputGeometry
要與這個實例結合的幾何。

combineMode
要執行的合併作業類型。

inputGeometryTransform
合併之前要套用至 inputGeometry 的轉換。

geometrySink
合併作業的結果。

flatteningTolerance
幾何多邊形近似值中點之間的距離上限。 較小的值會產生更精確的結果,但會導致執行速度較慢。

傳回值

如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。

CD2DGeometry::CompareWithGeometry

描述這個幾何與指定幾何之間的交集。 比較是使用指定的扁平化容錯來執行。

D2D1_GEOMETRY_RELATION CompareWithGeometry(
    CD2DGeometry& inputGeometry,
    const D2D1_MATRIX_3X2_F& inputGeometryTransform,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

參數

inputGeometry
要測試的幾何。

inputGeometryTransform
要套用至 inputGeometry 的轉換。

flatteningTolerance
幾何多邊形近似值中點之間的距離上限。 較小的值會產生更精確的結果,但會導致執行速度較慢。

傳回值

如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。

CD2DGeometry::ComputeArea

在指定的矩陣轉換幾何區域,並使用指定的容錯進行扁平化之後,計算幾何的區域。

BOOL ComputeArea(
    const D2D1_MATRIX_3X2_F& worldTransform,
    FLOAT& area,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

參數

worldTransform
在計算其區域之前,要套用至此幾何的轉換。

地區
當這個方法傳回時,會包含已轉換、扁平化此幾何區域區域的指標。 您必須配置此參數的儲存體。

flatteningTolerance
幾何多邊形近似值點之間的距離上限。 較小的值會產生更精確的結果,但會導致執行速度較慢。

傳回值

如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。

CD2DGeometry::ComputeLength

計算幾何的長度,就好像每個線段都取消標籤成一條線。

BOOL ComputeLength(
    const D2D1_MATRIX_3X2_F& worldTransform,
    FLOAT& length,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

參數

worldTransform
要套用至幾何的轉換,再計算其長度。

length
這個方法傳回時,會包含幾何長度的指標。 對於封閉的幾何,長度包含隱含的結尾線段。 您必須配置此參數的儲存體。

flatteningTolerance
幾何多邊形近似值點之間的距離上限。 較小的值會產生更精確的結果,但會導致執行速度較慢。

傳回值

如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。

CD2DGeometry::ComputePointAtLength

在指定的矩陣轉換到指定的矩陣,並使用指定的容錯扁平化之後,計算沿著幾何的指定距離的點和正切向量。

BOOL ComputePointAtLength(
    FLOAT length,
    const D2D1_MATRIX_3X2_F& worldTransform,
    CD2DPointF& point,
    CD2DPointF& unitTangentVector,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

參數

length
沿著要尋找之點和正切值的幾何距離。 如果這個距離小於 0,這個方法會計算幾何中的第一個點。 如果這個距離大於幾何的長度,這個方法會計算幾何中的最後一個點。

worldTransform
要套用至幾何的轉換,再計算指定的點和正切值。


在幾何上指定距離的位置。 如果幾何是空的,這個點就會包含 NaN 作為其 x 和 y 值。

unitTangentVector
當這個方法傳回時,會包含幾何上指定距離的正切向量的指標。 如果幾何是空的,則此向量會包含 NaN 作為其 x 和 y 值。 您必須配置此參數的儲存體。

flatteningTolerance
幾何多邊形近似值點之間的距離上限。 較小的值會產生更精確的結果,但會導致執行速度較慢。

傳回值

如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。

CD2DGeometry::D estroy

終結 CD2DGeometry 物件。

virtual void Destroy();

CD2DGeometry::D etach

從 物件中斷連結資源介面

ID2D1Geometry* Detach();

傳回值

卸離資源介面的指標。

CD2DGeometry::FillContainsPoint

指出幾何所填滿的區域是否包含指定的扁平化容錯指定的點。

BOOL FillContainsPoint(
    CD2DPointF point,
    const D2D1_MATRIX_3X2_F& worldTransform,
    BOOL* contains,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

參數


要測試的點。

worldTransform
在測試內含專案之前要套用至幾何的轉換。

contains
當這個方法傳回時,如果幾何所填滿的區域包含點,則包含為 TRUE 的 bool 值;否則為 FALSE。 您必須配置此參數的儲存體。

flatteningTolerance
計算精確幾何路徑和路徑交集的數值精確度。 仍然會將遺漏填滿點小於容錯的點納入考慮。 較小的值會產生更精確的結果,但會導致執行速度較慢。

傳回值

如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。

CD2DGeometry::Get

傳回 ID2D1Geometry 介面

ID2D1Geometry* Get();

傳回值

如果物件尚未初始化,則為 ID2D1Geometry 介面的指標或 Null。

CD2DGeometry::GetBounds

BOOL GetBounds(
const D2D1_MATRIX_3X2_F& worldTransform,
CD2DRectF& bounds) const;

參數

worldTransform
bounds

傳回值

CD2DGeometry::GetWidenedBounds

取得幾何的界限之後,它已由指定的筆劃寬度和樣式擴展,並由指定的矩陣轉換。

BOOL GetWidenedBounds(
    FLOAT strokeWidth,
    ID2D1StrokeStyle* strokeStyle,
    const D2D1_MATRIX_3X2_F& worldTransform,
    CD2DRectF& bounds,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

參數

strokeWidth
要透過擷取其外框來擴大幾何的數量。

strokeStyle
擴大幾何之筆劃的樣式。

worldTransform
在幾何轉換和幾何筆劃之後套用至幾何的轉換。

bounds
當這個方法傳回時,會包含擴展幾何的範圍。 您必須配置此參數的儲存體。

flatteningTolerance
幾何多邊形近似值中點之間的距離上限。 較小的值會產生更精確的結果,但會導致執行速度較慢。

傳回值

如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。

CD2DGeometry::IsValid

檢查資源有效性

virtual BOOL IsValid() const;

傳回值

如果資源有效,則為 TRUE;否則為 FALSE。

CD2DGeometry::m_pGeometry

ID2D1Geometry 的指標。

ID2D1Geometry* m_pGeometry;

CD2DGeometry::operator ID2D1Geometry*

傳回 ID2D1Geometry 介面

operator ID2D1Geometry*();

傳回值

如果物件尚未初始化,則為 ID2D1Geometry 介面的指標或 Null。

CD2DGeometry::Outline

計算幾何的外框,並將結果寫入 ID2D1SimplifiedGeometrySink。

BOOL Outline(
    const D2D1_MATRIX_3X2_F& worldTransform,
    ID2D1SimplifiedGeometrySink* geometrySink,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

參數

worldTransform
要套用至幾何外框的轉換。

geometrySink
附加幾何轉換外框的 ID2D1SimplifiedGeometrySink。

flatteningTolerance
幾何多邊形近似值點之間的距離上限。 較小的值會產生更精確的結果,但會導致執行速度較慢。

傳回值

如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。

CD2DGeometry::簡化

建立只包含線條和 (選擇性) 立方貝茲曲線的簡化幾何版本,並將結果寫入 ID2D1SimplifiedGeometrySink。

BOOL Simplify(
    D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,
    const D2D1_MATRIX_3X2_F& worldTransform,
    ID2D1SimplifiedGeometrySink* geometrySink,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

參數

simplificationOption
值,指定簡化的幾何是否應該包含曲線。

worldTransform
要套用至簡化幾何的轉換。

geometrySink
附加簡化幾何的 ID2D1SimplifiedGeometrySink。

flatteningTolerance
幾何多邊形近似值點之間的距離上限。 較小的值會產生更精確的結果,但會導致執行速度較慢。

傳回值

如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。

CD2DGeometry::StrokeContainsPoint

判斷幾何筆劃是否包含指定筆劃粗細、樣式和轉換的指定點。

BOOL StrokeContainsPoint(
    CD2DPointF point,
    FLOAT strokeWidth,
    ID2D1StrokeStyle* strokeStyle,
    const D2D1_MATRIX_3X2_F& worldTransform,
    BOOL* contains,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

參數


要測試內含專案的點。

strokeWidth
要套用的筆劃粗細。

strokeStyle
要套用的筆劃樣式。

worldTransform
要套用至筆劃幾何的轉換。

contains
當這個方法傳回時,如果幾何筆劃包含指定的點,則包含設定為 TRUE 的布林值;否則為 FALSE。 您必須配置此參數的儲存體。

flatteningTolerance
計算精確幾何路徑和路徑交集的數值精確度。 在內部仍會將遺漏筆劃的點視為小於容錯。 較小的值會產生更精確的結果,但會導致執行速度較慢。

傳回值

如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。

CD2DGeometry::Tessellate

建立一組順時針形三角形,其會在使用指定的矩陣進行轉換後覆蓋幾何,並使用指定的容錯壓平。

BOOL Tessellate(
    const D2D1_MATRIX_3X2_F& worldTransform,
    ID2D1TessellationSink* tessellationSink,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

參數

worldTransform
要套用至這個幾何的轉換,或 Null。

鑲嵌式Sink
附加鑲嵌的 ID2D1TessellationSink。

flatteningTolerance
幾何多邊形近似值點之間的距離上限。 較小的值會產生更精確的結果,但會導致執行速度較慢。

傳回值

如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。

CD2DGeometry::Widen

透過指定的筆劃擴大幾何,並將結果寫入 ID2D1SimplifiedGeometrySink 之後,由指定的矩陣轉換,並使用指定的容錯扁平化。

BOOL Widen(
    FLOAT strokeWidth,
    ID2D1StrokeStyle* strokeStyle,
    const D2D1_MATRIX_3X2_F& worldTransform,
    ID2D1SimplifiedGeometrySink* geometrySink,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

參數

strokeWidth
要擴大幾何的量。

strokeStyle
要套用至幾何或 Null 的筆劃樣式。

worldTransform
在擴大幾何之後要套用至幾何的轉換。

geometrySink
附加擴大幾何的 ID2D1SimplifiedGeometrySink。

flatteningTolerance
幾何多邊形近似值點之間的距離上限。 較小的值會產生更精確的結果,但會導致執行速度較慢。

傳回值

如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。

另請參閱

類別