如何在给定向量的垂直平面中找到 3D 点坐标

罗尼

我在 3d 空间中有两个点,一个是 (x,0,z),另一个是原点 (0,0,0),通过这些点有一条长度为 L 的通过线,从第一个点并在原点之后继续,在这条线的末端有一个垂直(与线)尺寸为 W x H 的平板,该线在该板的中间结束。

假设给定了 x,z,L,H,W,我需要一种方法来找到所有 3D 点坐标,这些点在板上形成像素图像(意味着每个点与其左、右、顶部、底部相邻点)。

附上一张非常难看的图:) 我试图说明这个问题(我用两个问号标记了像素点,但我需要它们)。

谢谢。

丑陋的绘图

管理层收购

可以定义该平面。但是没有选择方向来唯一地构建网格。

让我们选择 OY 方向作为基础(因为法线的 Y 分量为零)。

所以我们有:

法向量N = (xx, 0, zz)//我重命名了值以避免与坐标变量混淆

单位法向量n = (nx, 0, nz),其中

 nx = xx / Sqrt(xx*xx+zz*zz)
 nz = zz / Sqrt(xx*xx+zz*zz)

基点

B = (bx, 0, bz) =  (xx - nx * L, 0, zz - nz * L)

平面中的单位基向量

dy = (0, 1, 0)

另一个基向量

dc = dy x n  //vector product
   = (-bz, 0, bx)

现在可以使用i, j范围(-W/2..W/2)和 中的整数索引生成网格(-H/2.. H/2)网格节点坐标:

  x(i, j) = bx - j * bz
  y(i, j) = 0 + i 
  z(i, j) = bz + j * bx

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章