scipy 如何获得拟合到一组点的平面与垂线(z轴)形成的Angular

xlpyo6sf  于 2022-11-10  发布在  Angular
关注(0)|答案(1)|浏览(167)

首先,我试着计算一个平面,这个平面适合三维空间中的一组点,我已经用下面的代码完成了这个计算:

import numpy as np
import scipy.linalg

# Create some 3-dim points

mean = np.array([0.0,0.0,0.0])
cov = np.array([[1.0,-0.5,0.8], [-0.5,1.1,0.0], [0.8,0.0,1.0]])
data = np.random.multivariate_normal(mean, cov, 50)

# Fit plane

C,_,_,_ = scipy.linalg.lstsq(np.c_[data[:,0], data[:,1], np.ones(data.shape[0])], data[:,2])

# Coefficients in the form: a*x + b*y + c*z + d = 0.

a, b, c, d = C[0], C[1], -1., C[2]

但是一旦我有了平面的系数,我怎么才能知道平面与垂直线的夹角呢?谢谢!

vjrehmav

vjrehmav1#

垂直于平面的向量
ax+by+cz=d
由(a,b,c)给出。
现在,两个平面之间的夹角是两个法向量之间的锐角,因此:

v1=[a,b,c]
v2=[0,0,1]

angle = np.arccos(np.dot(v1, v2) / (np.linalg.norm(v1) * np.linalg.norm(v2)))

相关问题