如何在给定向量的垂直平面中找到 3D 点坐标
How to find 3D points coordinates in a perpendicular plane to a given vector
我在一个3d中有两个点space,一个点是(x,0,z),另一个是原点(0,0,0),通过这些点有一个经过长度为 L 的线,从第一个点开始并在原点之后继续,在这条线的末端有一个垂直(与线)尺寸为 W x H 的平板,线在此中间结束板.
假设给定了 x、z、L、H、W,我需要一种方法来找到所有 3D 点坐标,这些点在板上形成像素图像(意味着每个点与 1 的距离它的左、右、上、下相邻点)。
附上一张非常丑陋的图 :) 我试图说明问题(我用两个问号标记了像素点,但我需要它们)。
谢谢。
可以定义那个平面。但是没有选择唯一的方向来构建网格。
让我们选择 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)
现在可以使用 (-W/2..W/2)
和 (-H/2.. H/2)
范围内的整数索引 i, j
生成网格。网格节点坐标:
x(i, j) = bx - j * bz
y(i, j) = 0 + i
z(i, j) = bz + j * bx
我在一个3d中有两个点space,一个点是(x,0,z),另一个是原点(0,0,0),通过这些点有一个经过长度为 L 的线,从第一个点开始并在原点之后继续,在这条线的末端有一个垂直(与线)尺寸为 W x H 的平板,线在此中间结束板.
假设给定了 x、z、L、H、W,我需要一种方法来找到所有 3D 点坐标,这些点在板上形成像素图像(意味着每个点与 1 的距离它的左、右、上、下相邻点)。
附上一张非常丑陋的图 :) 我试图说明问题(我用两个问号标记了像素点,但我需要它们)。
谢谢。
可以定义那个平面。但是没有选择唯一的方向来构建网格。
让我们选择 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)
现在可以使用 (-W/2..W/2)
和 (-H/2.. H/2)
范围内的整数索引 i, j
生成网格。网格节点坐标:
x(i, j) = bx - j * bz
y(i, j) = 0 + i
z(i, j) = bz + j * bx