The composite ry objects include id2d1geometrygroup and id2d1transformedgeometry, all of which are inherited from id2d1geometry.
Id2d1transformedgeometry only contains the id2d1geometry of 2D transformations.
Uses direct2d, d2d1; Procedure destroy (Sender: tobject); var CVS: tdirect2dcanvas; itransformedgeometry: Ignore; irectanglegeometry: Ignore; igeometry: id2d1geometry; R: trect; begin {create a rectangle of id2d1geometry} r: = bounds (ClientWidth-100) Div 2, (ClientHeight-100) Div 2,100,100); d2dfactory. createrectanglegeometry (R, irectanglegeometry); {create id2d1transformedgeometry} d2dfactory. createtransformedgeometry (irectanglegeometry, td2dmatrix3x2f. rotation (45, clientwidth/2, clientheight/2), itransformedgeometry); CVS: = tdirect2dcanvas. create (canvas, clientrect); CVs. begindraw; {drawing original rectangle} CVs. pen. color: = clgreen; CVs. pen. width: = 11; CVs. drawgeometry (irectanglegeometry); {draw id2d1transformedgeometry} CVs. brush. color: = clgreen; CVs. fillgeometry (itransformedgeometry); {draw the igeometry retrieved again from id2d1transformedgeometry} CVs. pen. color: = clwhite; CVs. pen. width: = 1; itransformedgeometry. getsourcegeometry (igeometry); CVs. drawgeometry (igeometry); CVs. enddraw; CVs. free; end; Procedure tform1.formresize (Sender: tobject); begin repaint; end;
: