如何旋转TPathData(矢量路径)?

4

我有一个TPathData箭头并直接在画布上绘制。如何旋转TPathData?我知道如何旋转Tpath,但我直接在画布上绘制(线条和箭头)。我尝试旋转Tpath并获取数据字符串,但它与之前相同。

2个回答

4

你需要创建一个旋转矩阵,然后应用它

M := TMatrix.CreateRotation(DegToRad(90));  
PathData.ApplyMatrix(M);

4

不要旋转TPathData,为什么不在绘制路径之前设置TCanvas矩阵呢?这样可能更有效率,因为GPU会处理旋转,并且更加数值稳定,因为如果您旋转多次,则不会丢失路径数据点的任何精度。

msave := Image1.Bitmap.Canvas.Matrix;
Image1.Bitmap.Canvas.SetMatrix(TMatrix.CreateRotation(DegToRad(90)));
Image1.Bitmap.Canvas.DrawPath(PathData, 1);
Image1.Bitmap.Canvas.SetMatrix(msave); // Restore canvas matrix

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接