我有如下3D位置向量:
A=np.array([-773.58, 645.41, -101.986])
B=np.array([841.01, -205.0, 400.9])
C=np.array([1000.91, 805.45, 745.10])
及其对应的法向量
NORM_A = np.array([0.89, -0.031, 0.44])
NORM_B = np.array([0.87, -0.14, -0.46])
NORM_C = np.array([0.83, -0.23, -0.48])
位置A、B和C只是3D空间中的点,但是法向向量NORM_A、NORM_B和NORM_C表示垂直于曲面的法向向量。
那么,如何拟合3D曲面(可能是曲面)呢?
1条答案
按热度按时间zujrkrfu1#
你需要进行一些自我反省,选择你想要尝试拟合的理想曲面的几何形状。你声称能够接受抛物面。(y,z)中广义椭圆抛物面的方程为
或
gradient是
单位法线是梯度除以它的Frobenius范数,
编写求抛物面
x
和单位法线函数的函数,如上。然后写一个成本函数,它应用参数a
到e
,并计算理想量和实际量之间的最小二乘。结果是一种非常粗糙但大致合适的契合:
产出:
可视化result in 3D (surface and contours):
可视化a normal:
更多的数据点和具有更多自由度的更复杂的函数可以实现更好的拟合,但您需要确定这意味着什么。