我在平面上均匀分布了一些值(字节)(来自实际测量),例如温度。 我正在尝试生成整个表面。但我没有成功。
主要条件是点的数量和位置将不知道,并且表面必须保持测量点的值,并插入其间的点。
理想情况下,如果只设置一个点,则最终表面应该是一座山。
顺便说一句,只是在它可能有所帮助的情况下。我在WPF(C#)上对它进行编码,如果不涉及繁重的库或其他任何小工作,那将是件好事
提前致谢!
答案 0 :(得分:1)
典型的方法是在域中构建Delaunay triangulation样本集(在您的情况下为矩形),然后使用找到的三角形作为表面。
一般点集的delaunay三角剖分被定义为三角形,其外接圆不包含任何其他点。
用于计算Delaunay三角剖分的平凡算法(选择所有三角形以查看是否有任何点位于其外接圆内)是O(n^4)
。
incremental algorithm在O(n log n)
预计时间内运行:
分而治之算法也提供O(n log n)
,但也为某些点集提供O(n log log n)
。
一旦进行了三角测量,您只需要通过垂直线与曲面相交来找到测量值:
A + k(B-A) + l(C-A)
A.value + k(B.value-A.value) + l(C.value-A.value)
(将三角形视为[域x范围]空间中的平面。