delphi - 如何旋转 TPathData(矢量路径)?
问题描述
我有 TPathData 箭头并直接在 Canvas 上绘制。如何旋转 TPathData?我知道旋转 Tpath,但我直接在 Canvas 上绘制(线条和箭头)。我尝试旋转 Tpath 和获取数据字符串 - 但它与以前相同。
解决方案
与其旋转 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
推荐阅读
- docker-compose - Docker Compose 文件中的问题
- python - 如何在neural_tangent.stax 框架中指定输入维度?
- reactjs - NextJS:将新的查询字符串值推送到现有的 asPath 或更新现有的查询字符串
- angular - 角度和引导模式
- thymeleaf - 如何在 Thymeleaf 中的每 N 次迭代后更改 Row?
- image - 如何确保 Sphinx 文档中的图像文件在 LaTeX pdf 中“自动”复制
- javascript - 遍历有条件的对象的对象
- xcode - Xcode 在最新升级中丢失了一些模拟器
- types - Haxe:检查动态类型是否为对象
- angular - 用户登录但令牌在使用角度中的 JWT auth 刷新之前未更改