Direct2D (25) : 将画笔线条所占用的区域转换为路径 - ID2D1Geometry.Widen()
生活随笔
收集整理的這篇文章主要介紹了
Direct2D (25) : 将画笔线条所占用的区域转换为路径 - ID2D1Geometry.Widen()
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
uses Direct2D, D2D1;procedure TForm1.FormPaint(Sender: TObject); varcvs: TDirect2DCanvas;iGeometry: ID2D1Geometry;iPathGeometry: ID2D1PathGeometry;iGeometrySink: ID2D1GeometrySink; begin{建立一個幾何對象 iGeometry}D2DFactory.CreateEllipseGeometry(D2D1Ellipse(D2D1PointF(ClientWidth/2, ClientHeight/2), ClientWidth/4, ClientHeight/4),ID2D1EllipseGeometry(iGeometry));cvs := TDirect2DCanvas.Create(Canvas, ClientRect);cvs.BeginDraw;{繪制 iGeometry}cvs.Pen.Color := clYellow;cvs.Pen.Width := 25;cvs.DrawGeometry(iGeometry);{創建 iPathGeometry,并把 iGeometry 的線條所占用的區域轉換成新的路徑到 iPathGeometry}D2DFactory.CreatePathGeometry(iPathGeometry);iPathGeometry.Open(iGeometrySink);iGeometry.Widen(25, nil, TD2DMatrix3x2F.Identity, 0, iGeometrySink); //參數4是曲直容差,效果圖中包含把它設為 9 的演示iGeometrySink.Close;{繪制 iPathGeometry}cvs.Pen.Color := clRed;cvs.Pen.Width := 1;cvs.DrawGeometry(iPathGeometry);cvs.EndDraw;cvs.Free; end;procedure TForm1.FormResize(Sender: TObject); beginRepaint; end;
效果圖:
轉載于:https://www.cnblogs.com/del/archive/2011/04/07/2007676.html
總結
以上是生活随笔為你收集整理的Direct2D (25) : 将画笔线条所占用的区域转换为路径 - ID2D1Geometry.Widen()的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visual C++ 菜单
- 下一篇: WPF纯手工两步打造图片切割工具(一)