【发布时间】:2018-09-12 05:14:17
【问题描述】:
我研究了 样条线、nurbs 和 Bezier 曲线,但找不到适合我需要的算法。我将不胜感激有关可以根据二维数组中的点绘制曲线的算法或函数的帮助。
示例:
我的数组中的第一个起点:ex arr[1,2] = new Point(1,2)
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
输出:
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0
0,0,1,0,0,0,0,1,0,1,0,0,0,0,0 ,0
0,0,0,1,0,0,0,1,0,0,1,0,0,0,0 ,0
0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0
0,0,0,0,1,1,1,0,0,0,0,0,0,0,0 ,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
【问题讨论】:
-
我不明白你想要什么。您可以扫描数组以查找点(“1”),但这并不能确定要连接哪个点。我们也不知道您到底想要什么结果?像素?点加控制点?很不清楚。在 GDI+ 中有很好的函数从点绘制贝塞尔曲线。但是你需要点和正确的 order!
-
我希望结果像第二个数组。我的数组中有 n 个点,然后我想在我的样条线经过的地方每 0 到 1 进行一次更改,就像 Bresenham 的算法一样,但对于曲线。
-
所以点应该从左到右连接,就像连续函数的图形一样?
-
要么做数学题,要么作弊。为了作弊,您可以绘制一个小位图并读出像素并将 1 放入第二个数组。我做了类似的事情with characters here
-
我可以“作弊”,但我真的很想要这个算法,因为我非常需要它,而且它比读取 1200*800 位图 n 次更容易。但是谢谢你帮助我。
标签: c# algorithm bezier spline nurbs