拍照时,我很难找到“曲面上的坐标”。想象一下一个桶或曲面,其表面上有n个点,我们需要确定它们的位置。当从“正面”拍摄表面并旋转约30度时,这些点的相对位置将看起来不同。
如果是平板,我想将长度标准化并找到每个点的相对坐标。由于它是一块平板,每个归一化坐标将独立于旋转角度给出相同的数字。但是当它在曲面上时,归一化无助于找到坐标。有没有一种方法可以跟踪物体旋转时的坐标?
答案 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
轴的唯一线,因此是水平的。法线向量N
与O ---> z
轴对齐,该轴也是水平的,从相机开始并经过axis
,正交于z = 0
。
在屏幕平面上的坐标系(称为屏幕系统)就是以S
(3D点在屏幕O x y
上的正交投影)获得的系统,即是二维系统O--->x
,其中屏幕系统的O--->y
和axis
轴也是上述摄像机系统的轴。
据我了解,您对表面拍了两次,一次是在一个位置,然后是在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}}。
情况如下图所示:
如您所见,我们选择了水平切片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
。您必须解决z1
和z2
。将有四对解决方案,您必须选择与实际情况相对应的解决方案。但是,要精确地求解该系统可能很困难,因此您可以使用牛顿方法来找到一个非常好的近似解。
我已经在图片上写了系统,您可以在公式中看到它。角度x1, x2, l, a
是您的z1
。