![]() |
1
15
首先,您需要计算
现在,一个简单的点积可以做到:
请注意,这假设u-v坐标的原点是世界原点(0,0,0)。
即使您的矢量
|
![]() |
2
6
假设你想找到平面中任何一点的坐标,用坐标(u,v)。。。 如果点[x0,y0,z0]位于平面内,那么我们知道
其中,dot是两个向量之间的点积。这只是在改写平面方程。 诀窍是找到两个跨越平面子空间的向量。为此,我们选择一个长度为3的随机向量。称之为V0。我将平面法向量称为
接下来,使用法向量N与V0的叉积。
这个向量将与法向量正交,除非我们非常不走运,N和V0共线。在这种情况下,只需选择另一个随机向量V0。我们可以判断这两个向量是否共线,因为V1将是向量[0 0 0]。 因此,如果V1不是零向量,那么将每个元素除以V1的范数。向量的范数就是元素平方和的平方根。
接下来,我们选择与N和V1都正交的第二矢量V2。同样,向量叉积可以很轻松地做到这一点。将该向量规格化,使其也具有单位长度。(因为我们现在知道V1是一个具有单位范数的向量,所以我们可以除以范数(N)。)
平面中的任何点现在都可以简单地描述为(u,v)的函数,如下所示:
例如,当(u,v)=(0,0)时,显然我们得到了[x0,y0,z0],所以我们可以将该点视为(u,v)坐标中的“原点”。 同样,我们可以做一些事情,比如从已知位于平面中的任何点[x,y,z]恢复u和v,或者我们可以找到不在平面中的点的法线投影,投影到该平面中。 |
![]() |
Muhammad Umer · 为什么这个随机数猜谜游戏模拟产生5.8 8 月前 |
![]() |
Alisa Petrova · 在有向图中更改一对顶点以创建循环 9 月前 |
|
D W · Python-将浮点数从2转换为10到100位小数 10 月前 |
![]() |
Bartol · 确定python龟图形中的角度 1 年前 |
|
randomAlgo · 将弹簧设置为相同长度的成本最低 1 年前 |
![]() |
Fyodor · 在C中使用sin和cos计算数学表达式不正确? 1 年前 |
![]() |
Sergio · python中大量数字的乘法 1 年前 |