我可以避免FillPolygon与DrawPolygon的不良/不同渲染吗?

时间:2008-12-12 15:36:57

标签: 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,但我需要使用半透明颜色。如果它可以产生影响,我正在绘制图像。

2 个答案:

答案 0 :(得分:1)

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

    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>)

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

答案 1 :(得分:0)

Hack:在中间缓冲区中将整个箭头绘制为不透明,然后使用适当的透明度将整个缓冲区绘制到图像上。