我有一个关于自己绘制线条/路径的问题。我将 C#/WPF/Cudafy 组合用于 UI 和一些计算(例如路径)。现在我有一个 Byte[] 数组,应该用“颜色”/值填充(数组长度 = 4 * 宽度 * 结果图像的高度)。
我得到了一些线的起点和一个终点(起点之间的某处)。首先,我计算了从这些起点到终点的一些路径,然后想将它们“绘制”到数组(将用于构造 WriteableBitmap)。但是,点坐标存在于“简化环境”中(因为计算了运行 Dijkstra 算法所需的路径)。
我的路径现在由包含点坐标(减小的大小)和“线宽”的元组定义。
由于某些路径可能“重叠”,我想我将执行以下步骤以确保结果看起来不错:
- 合并路径:为此,我将选择一条路径并保留它。然后我采取第二个并检查路径点是否位于已添加的路径附近(如近邻搜索)。我想这样做是因为最后,我想加宽路径重叠的线宽(第三个元组值)。
- 完成后,我想“插入”路径:我真的不知道该怎么做,因为每条路径在每个(缩小尺寸的)像素处都有一个点。一种可能性是清除所有那些“位于一条线上”(并且不是真正必要)的路径的路径坐标,然后执行类似 Bezier - Interpolation 的操作。但是所有这些步骤对我来说似乎都是多余的。
你不认为可能有更好的方法来做到这一点吗?如果是这样,请分享您的想法:)
谢谢你的帮助!
这是一个链接,指向它现在的样子:CPVL 应用程序