gpt4 book ai didi

c# - 在 C# 中创建一个填充有平铺图像的多边形

转载 作者:太空狗 更新时间:2023-10-29 23:26:36 26 4
gpt4 key购买 nike

我正在创建一个应用程序,它可以在用户设计相框时将其可视化。为了创建框架,我绘制了 4 个代表木头的物理位的多边形,并使用 TextureBrush 来填充它。

这对左边缘和上边缘非常有效。但是,对于底部和右侧边缘,此方法不起作用。在我看来,TextureBrush 是从图像上的点 (0,0) 开始平铺的,而不是在我绘制的多边形内。因此,图 block 不与多边形对齐。通过调整图像的大小,我可以使图 block 完美对齐。

如何创建一个任意定位的多边形并用平铺图像填充它,从多边形内的点 (0,0) 开始,而不是 Canvas ?

FillPolygon 和 TextureBrush 如果有更好的解决方案我就不执着了。

例子

alt text

最佳答案

我刚刚找到了答案。我正在尝试向 TextureBrush 构造函数添加 BoundingBox,但我一直收到 OutOfMemory 异常,并认为这是我不理解的。结果证明这是 .NET 框架中的错误

http://connect.microsoft.com/VisualStudio/feedback/details/90973/texturebrush-constructor-throws-out-of-memory-exception-when-providing-the-bounding-rectangle

解决方法是使用变换来移动纹理

var brush = new TextureBrush(new Bitmap(imagefile));

Matrix mtx = brush.Transform;
mtx.Translate(xoffset, 0);
brush.Transform = mtx;

关于c# - 在 C# 中创建一个填充有平铺图像的多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4439075/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com