在曲面上查找坐标应遵循什么方法?
What methodology to follow to find coordinates on a curved surface?
我拍照的时候很难找到 "coordinates on a curved surface"。想象一个桶或一个曲面,其表面上有 n 个点,我们需要确定它们的位置。当从 '"front" 拍摄表面并旋转大约 30 度时,点的相对位置看起来会有所不同。
如果是平板,我会想把长度归一化,求出每个点的相对坐标。由于它是一个平板,每个归一化坐标都会给出相同的数字,与旋转角度无关。但是当它在曲面上时,归一化并不能帮助找到坐标。有没有一种方法可以遵循来找到对象旋转时的坐标?
可以在此处看到示例问题的视觉效果:
可以看到另一个示例图的俯视图:
假设这个圆柱上的点彼此之间的距离总是相同的,你只需要找出一个坐标三元组,然后你就可以在测地线上计算出其他坐标。
所以它将在大地坐标系中:
(x1, y1, z1)
(x1 + 距离, y1, z1)
(x1 + 2*距离, y1, z1)
这仅适用于坐标之间的距离恒定且已知并且您知道测地线的角度...
您似乎处于以下情况:您有一条名为 axis
的固定垂直线,它是您旋转曲面所围绕的垂直旋转轴。此外,你有一个平面 S
,代表你的相机屏幕。 screen-planeS
也是垂直的,相当于是平行于旋转axis
。然后,screen-plane S
的法向量 N
指向 axis
。
我们引入一个固定的坐标系(它被称为camera-system,我们从相机的角度看世界,它是固定的,因为你的相机是固定的)通过以下方式:我们在 screen-plane S
上选择一个固定点 O
并在 S
上绘制 O ---> y
轴作为 S
上平行于 axis
并通过 O
。轴 O ---> x
是垂直于 O ---> y
轴的唯一直线,因此是水平的。法向量 N
与 O ---> z
轴对齐,它也是水平的,从相机开始并通过 axis
,与后者垂直相交。
screen-plane上的坐标系,称其为screen-system,就是得到的坐标系z = 0
(3D点在屏幕上的正交投影S
),即它是 two-dimensional 系统 O x y
,其中 screen-system 的 O--->x
和 O--->y
轴也是 camera-system 的轴, 定义如上。
据我了解,您拍摄了两次表面照片,一次是在一个位置,第二次是在将其围绕 axis
旋转一个角度 a
后进行第二次。旋转前在曲面上取一个标记点points P
。那么它在屏幕 S
上的正交投影 p1
在 screen0system 中的坐标是 [x1,y1]
。在表面围绕 axis
旋转角度 a
后,点 P
现在在屏幕 S
上具有正交投影 p2
,新坐标 [=49= 】 在屏幕系统中。我假设您可以确定屏幕上任意点相对于 screen-system 的坐标。如果我没记错的话,目标就相当于在三个spaceO x y z
中确定旋转前后P
的坐标。但是,由于你在屏幕上的投影S
是正交的,你只需要确定点P
旋转前后的z
坐标。从那里,你可以继续找到P
在表面上的曲线坐标,它可以简单地是投影到表面上的屏幕坐标,所以表面参数化可以例如:
X = x1
Y = y1
Z = z1(x1, y1)
我们还假设您知道相机屏幕 S
和旋转轴 axis
之间的距离 l
。我相信到目前为止所有这些假设都是非常合理的,因为您可以控制相机的设置(即屏幕平面 S
及其坐标系,这很自然)和旋转轴 axis
。
情况如下图:
如您所见,我们选择了水平切片 y = y1
,由于屏幕和相机坐标系的整体排列,我们有 y = y1 = y2
。观察到由于 axis
的旋转,我们有 dist(P0, axis) = dist(Pa, axis)
。因此三角形 P0 Pa axis
是等腰三角形,顶点 axis
的角 a
。因此,如果您通过顶点 axis
绘制该三角形的反射对称轴,您将得到相同 right-angled 三角形的两个副本,其中您有等式
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
如果你看三个(right-angled)梯形O p1 P0 axis
然后O p2 Pa axis
最后P0 p1 p2 Pa
得到两个二次方程组,其两个未知数是z 坐标 z1
和 z2
。其余参数给出:x1, x2, l, a
。您必须求解 z1
和 z2
。将有四对解决方案,您必须 select 符合实际情况的解决方案。然而,精确求解系统可能很困难,因此您可以使用牛顿法找到一个非常好的近似解。
我把系统写在图上了,你可以看公式。角度 a
就是你的 theta
.
我拍照的时候很难找到 "coordinates on a curved surface"。想象一个桶或一个曲面,其表面上有 n 个点,我们需要确定它们的位置。当从 '"front" 拍摄表面并旋转大约 30 度时,点的相对位置看起来会有所不同。
如果是平板,我会想把长度归一化,求出每个点的相对坐标。由于它是一个平板,每个归一化坐标都会给出相同的数字,与旋转角度无关。但是当它在曲面上时,归一化并不能帮助找到坐标。有没有一种方法可以遵循来找到对象旋转时的坐标?
可以在此处看到示例问题的视觉效果:
可以看到另一个示例图的俯视图:
假设这个圆柱上的点彼此之间的距离总是相同的,你只需要找出一个坐标三元组,然后你就可以在测地线上计算出其他坐标。
所以它将在大地坐标系中: (x1, y1, z1) (x1 + 距离, y1, z1) (x1 + 2*距离, y1, z1)
这仅适用于坐标之间的距离恒定且已知并且您知道测地线的角度...
您似乎处于以下情况:您有一条名为 axis
的固定垂直线,它是您旋转曲面所围绕的垂直旋转轴。此外,你有一个平面 S
,代表你的相机屏幕。 screen-planeS
也是垂直的,相当于是平行于旋转axis
。然后,screen-plane S
的法向量 N
指向 axis
。
我们引入一个固定的坐标系(它被称为camera-system,我们从相机的角度看世界,它是固定的,因为你的相机是固定的)通过以下方式:我们在 screen-plane S
上选择一个固定点 O
并在 S
上绘制 O ---> y
轴作为 S
上平行于 axis
并通过 O
。轴 O ---> x
是垂直于 O ---> y
轴的唯一直线,因此是水平的。法向量 N
与 O ---> z
轴对齐,它也是水平的,从相机开始并通过 axis
,与后者垂直相交。
screen-plane上的坐标系,称其为screen-system,就是得到的坐标系z = 0
(3D点在屏幕上的正交投影S
),即它是 two-dimensional 系统 O x y
,其中 screen-system 的 O--->x
和 O--->y
轴也是 camera-system 的轴, 定义如上。
据我了解,您拍摄了两次表面照片,一次是在一个位置,第二次是在将其围绕 axis
旋转一个角度 a
后进行第二次。旋转前在曲面上取一个标记点points P
。那么它在屏幕 S
上的正交投影 p1
在 screen0system 中的坐标是 [x1,y1]
。在表面围绕 axis
旋转角度 a
后,点 P
现在在屏幕 S
上具有正交投影 p2
,新坐标 [=49= 】 在屏幕系统中。我假设您可以确定屏幕上任意点相对于 screen-system 的坐标。如果我没记错的话,目标就相当于在三个spaceO x y z
中确定旋转前后P
的坐标。但是,由于你在屏幕上的投影S
是正交的,你只需要确定点P
旋转前后的z
坐标。从那里,你可以继续找到P
在表面上的曲线坐标,它可以简单地是投影到表面上的屏幕坐标,所以表面参数化可以例如:
X = x1
Y = y1
Z = z1(x1, y1)
我们还假设您知道相机屏幕 S
和旋转轴 axis
之间的距离 l
。我相信到目前为止所有这些假设都是非常合理的,因为您可以控制相机的设置(即屏幕平面 S
及其坐标系,这很自然)和旋转轴 axis
。
情况如下图:
如您所见,我们选择了水平切片 y = y1
,由于屏幕和相机坐标系的整体排列,我们有 y = y1 = y2
。观察到由于 axis
的旋转,我们有 dist(P0, axis) = dist(Pa, axis)
。因此三角形 P0 Pa axis
是等腰三角形,顶点 axis
的角 a
。因此,如果您通过顶点 axis
绘制该三角形的反射对称轴,您将得到相同 right-angled 三角形的两个副本,其中您有等式
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
如果你看三个(right-angled)梯形O p1 P0 axis
然后O p2 Pa axis
最后P0 p1 p2 Pa
得到两个二次方程组,其两个未知数是z 坐标 z1
和 z2
。其余参数给出:x1, x2, l, a
。您必须求解 z1
和 z2
。将有四对解决方案,您必须 select 符合实际情况的解决方案。然而,精确求解系统可能很困难,因此您可以使用牛顿法找到一个非常好的近似解。
我把系统写在图上了,你可以看公式。角度 a
就是你的 theta
.