用numpy将面与平面对齐

2024-04-26 09:51:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个由4个xyz顶点组成的面。在

我想把它和z轴对齐,这样它就平行了。在

如果我计算法线,我可以计算它们之间的角度,但那只是角度。我需要一个x轴和一个y轴。在

我在python3上使用numpy。在

谢谢。在


Tags: numpypython3角度顶点平行xyz法线
1条回答
网友
1楼 · 发布于 2024-04-26 09:51:43

要将单位向量旋转到第一个轴,可以使用QR decomp,如下所示:

normal = np.random.random(3)
normal /= np.sqrt(normal@normal)
some_base = np.identity(3)
some_base[:, 0] = normal
Q, R = np.linalg.qr(some_base)
Q.T@normal
# array([-1.00000000e+00, -2.77555756e-17,  1.11022302e-16])

如您所见,您可能需要翻转Q的一列或两列:

^{pr2}$

相关问题 更多 >