如何与WPF绘图,当我摆脱这些“秒杀”视觉假象呢?(How can I get rid of the

2019-09-23 03:56发布

我现在画的地图应用一些瓦(小正方形图像)。

我使用WPF借鉴这些瓷砖形状。

我的空间坐标组成该绘制多边形的名单。

构成这些多边形的地理坐标转换到像素坐标。

瓷砖在细节的各种设置级别创建。

在大多数的细节层次的绘制是好的; 但在特定的水平的视觉假影出现在尖峰或线的形式。

下面是一个例子,这些图像是在三个不同的细节水平的,其中一个示出了该问题和两个那里的问题没有发生任一侧上。

此图片是最高的详细程度,并确定:

该图像是在中等详细程度和exhibists尖峰(该一个沿公路85是最简单的SPOT):

这张图片是在最低的详细程度,并确定:

的尖峰出现在两个线路中的多边形获得彼此接近和/或形成一个密集点(收敛)发生。

我们已经检查了源数据和这些文物不存在(这也是它呈现正确的大部分时间的事实证实)。

接下来的犯罪嫌疑人是坐标转换的过程,但我们再次检查,并正在生产的点不应该以这种方式得出。

这使得WPF作为使我们在,我们不能简单地解决什么问题的,因为我们可以用我们自己的代码硬地的罪魁祸首。

你们有见过这个有点事?

一个修复将是非常美妙;)

目前,它看起来像我们要么必须忍受这个问题,或者切换到使用Direct2D的。 我们已经从GDI搬走+渲染,由于它是一个进程内单线程。

Answer 1:

解决的办法是改变Pen对象为“圆”的LineJoin财产。

http://msdn.microsoft.com/en-us/library/system.windows.media.pen.linejoin.aspx

http://msdn.microsoft.com/en-us/library/system.windows.media.penlinejoin.aspx

非常感谢Moozhe谁提供的评论这个答案。



文章来源: How can I get rid of these 'spike' visual artifacts when drawing with WPF?