在曲面上找到坐标时应遵循什么方法?

时间:2019-05-10 12:24:42

标签: geometry coordinates coordinate-transformation geometry-surface projection-matrix

拍照时,我很难找到“曲面上的坐标”。想象一下一个桶或曲面,其表面上有n个点,我们需要确定它们的位置。当从“正面”拍摄表面并旋转约30度时,这些点的相对位置将看起来不同。

如果是平板,我想将长度标准化并找到每个点的相对坐标。由于它是一块平板,每个归一化坐标将独立于旋转角度给出相同的数字。但是当它在曲面上时,归一化无助于找到坐标。有没有一种方法可以跟踪物体旋转时的坐标?

在此处可以看到示例问题的视觉效果: enter image description here

可以看到另一个示例图的俯视图: enter image description here

2 个答案:

答案 0 :(得分:0)

假设此圆柱上的点彼此之间始终具有相同的距离,则只需找出三个坐标中的一个即可,然后可以在测地线上计算其他坐标。

因此它将在大地坐标系中: (x1,y1,z1) (x1 +距离,y1,z1) (x1 + 2 *距离,y1,z1)

仅当坐标与已知点之间的距离恒定并且您知道测地线的角度...

时,此选项才适用

答案 1 :(得分:0)

您似乎处于以下情况:您有一条称为axis的固定垂直线,它是围绕曲面旋转的垂直旋转轴。此外,您有一个平面S,代表相机的屏幕。屏幕平面S也是垂直的,这等效于它与旋转axis平行。然后,屏幕平面N的法线向量S指向axis

我们采用以下方式引入固定坐标系(称为相机系统,我们从相机的角度看世界,并且由于您的相机是固定的,所以它是固定的):我们选择一个固定点O在屏幕平面S上,并在O ---> y上绘制S轴,作为S上与axis平行并经过的唯一线O。轴O ---> x是垂直于O ---> y轴的唯一线,因此是水平的。法线向量NO ---> z轴对齐,该轴也是水平的,从相机开始并经过axis,正交于z = 0

在屏幕平面上的坐标系(称为屏幕系统)就是以S(3D点在屏幕O x y上的正交投影)获得的系统,即是二维系统O--->x,其中屏幕系统的O--->yaxis轴也是上述摄像机系统的轴。

据我了解,您对表面拍了两次,一次是在一个位置,然后是在a上以P的角度旋转后第二次。旋转之前,在表面上取得标记的点p1之一。然后它在屏幕S上的正交投影[x1,y1]在screen0系统中具有坐标a。在围绕axis的表面以角度P旋转之后,点p2现在在屏幕S上具有正交坐标[x2,y2],并且坐标为新的{{1} }在屏幕系统中。我假设您可以确定屏幕上任何点相对于屏幕系统的坐标。如果我没看错,目标就是确定P在三个空间O x y z中旋转前后的坐标。但是,由于您在屏幕S上的投影是正交的,因此只需要确定旋转前后的点z的{​​{1}}坐标。从那里,您可以继续在表面上找到P的曲线线性坐标,该坐标可能只是投影到表面上的屏幕的坐标,因此表面参数化可以例如是:

P

我们还将假设您知道相机屏幕X = x1 Y = y1 Z = z1(x1, y1) 与旋转轴l之间的距离S。我相信到目前为止所做的所有这些假设都是非常合理的,因为您可以控制摄像机的设置(例如,屏幕平面axis及其坐标系,这很自然)和旋转轴{ {1}}。  情况如下图所示:

enter image description here

如您所见,我们选择了水平切片S,并且由于屏幕和摄像机坐标系的整体布置,我们有了axis。请注意,由于y = y1的旋转,我们有y = y1 = y2。因此,三角形axis是等腰的,顶点dist(P0, axis) = dist(Pa, axis)处的角度为P0 Pa axis。因此,如果通过顶点a绘制此三角形的反射对称轴,则会得到同一个直角三角形的两个副本,其中包含等式

axis

将后面的等式与等式

组合在一起
axis

如果对两个方程求平方并将它们放在一起作为一个系统,则会得到两个方程的系统

dist(P0, Pa)/(2*dist(axis, P0)) = sin(a/2)

如果您查看三个(直角)梯形dist(P0, axis) = dist(Pa, axis) ,则dist(P0, Pa)^2 = 4*(dist(axis, P0))^2*(sin(a/2))^2 dist(P0, axis)^2 = dist(Pa, axis)^2 ,最后是O p1 P0 axis,得到两个二次方程组,其两个未知数是z坐标{{ 1}}和O p2 Pa axis。其余参数给出:P0 p1 p2 Pa。您必须解决z1z2。将有四对解决方案,您必须选择与实际情况相对应的解决方案。但是,要精确地求解该系统可能很困难,因此您可以使用牛顿方法来找到一个非常好的近似解。

我已经在图片上写了系统,您可以在公式中看到它。角度x1, x2, l, a是您的z1