c# - 我可以避免 FillPolygon 与 DrawPolygon 的错误/不同渲染吗?

标签 c# graphics

我正在使用 FillPolygon用半透明颜色绘制三角形(箭头指针)。我注意到 FillPolygon 使用 isocel 三角形给出了尴尬的结果。其中一侧重叠 DrawPolygon的一边,而另外两个则不是。我原以为没有或全部,但不会介于两者之间。

示例如下:DrawPolygon 使用半透明的红色,而 FillPolygon 使用半透明的绿色。你可以看到一侧是棕色的,另外两侧是红色的。

alt text http://www.slimcode.com/downloads/arrow.png

此示例的坐标为:{X=36,Y=201}、{X=42,Y=207}、{X=30,Y=207}。

使用不透明颜色可以解决所有问题,因为我可以同时调用 DrawPolygon 和 FillPolygon,但我需要使用半透明颜色。如果它能有所作为,我正在绘制图像。

最佳答案

您想使用位图并执行类似的操作。请注意,这不是可运行的代码。

    Dim image As New Bitmap(<my_Xsize>, <my_Ysize>)
    Dim gr As Graphics = Graphics.FromImage(image)
    <Draw your FillPolygon>
    <Erase the leftside of the polygon>
    <Draw your Polygon>

     gr.DrawImage(image, <myXcoor>, <myYcoor>)

通过使用位图,您可以调整到像素级别以获得您想要的确切内容。

关于c# - 我可以避免 FillPolygon 与 DrawPolygon 的错误/不同渲染吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/363099/

相关文章:

c++ - 了解 glNormal3f

c# - 这个 EF 查询可以优化吗?

c# - 在 Mono 中使用预编译的 .NET 程序集 DLL?

c# - ASP.NET Core - 如何检测 IHostedService 是否在运行时崩溃?我可以重新启动它吗?

Haskell SOEGraphics 窗口不会关闭

c++ - 如何使用无绑定(bind)指定 UBO 绑定(bind)?

c# - Npgsql 如何处理失败的事务?

c# - 不引发异常

objective-c - 在 NSView 中绘制大量数据,或者其他?

c++ - 无法使用 OpenGL 创建彩色三角形