我有一个似乎无法解决的 3D 数学问题。
我有3分的数据。数据是平面上的(2D)坐标,漂浮在 3D 空间的某个位置。我也知道投影的(2D)坐标。这将产生以下数据数组:
[[[x1,y1], [px1,py1],
[[x2,y2], [px2,py2],
[[x3,y3], [px3,py3]]
其中法线(x1 等)坐标代表平面上的坐标,另一个(px1 等)代表投影坐标。
我想做的是投影一个新的二维坐标([x4,y4])。
.
到目前为止我尝试了什么:
当然,你需要一只眼睛来进行投影,所以我将它设置为 [xe,ye,-1]。xe 和 ye 是已知的。(这是照片参考,所以我只是把眼睛放在照片的中心。)
在眼睛下方,我放置了投影面(z=0)。这给出了以下投影坐标:
[[[x1,y1], [px1,py1,0],
[[x2,y2], [px2,py2,0],
[[x3,y3], [px3,py3,0]]
我不能对飞机上的坐标做同样的事情,因为我对那架飞机一无所知。
我还认为我可以对从眼睛穿过投影坐标的线条进行参数化公式。对于 line1,这将是:
line1x = xe+(px1-xe)*t1
line1y = ye+(py1-ye)*t1
line1z = -1+t1 // = -1+(0--1)*t1
我也知道 3D 中点之间的距离。这与 2D 中的相同。这意味着 point1 和 point2 之间的距离将是 sqrt((x1-x2)^2+(y1-y2)^2)。
我也随时知道线路(线路 1 和线路 2)之间的距离。即 sqrt((line1x-line2x)^2+(line1y-line2y)^2+(line1z-line2z)^2)。
但是,我真的不知道如何从这里走……或者甚至不知道这是否是正确的路线。
.
我希望你明白我想要做什么,并且你能帮助我。
提前致谢!