将云投影指向2D

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将云投影指向2D相关的知识,希望对你有一定的参考价值。

在半径为r的球体内部存在点云,这些点的坐标系位于球体的中心。这个想法是“拍摄”这个云的照片,因为球体表面有许多观点。 “摄像机”位置取决于角度θ(方位角)和phi(仰角),如图所示。我需要至少10000个图像或视点。

我怎么能处理这个?

enter image description here

我已经做好了:

this link之后,我将点数投射到每个平面,因为我还需要在3D中对它们进行可视化。像这样:

enter image description here

所以我有投影点的坐标属于“照片”的平面,但仍然使用原始坐标系。

飞机定义如下:

U = {-sin(theta), cos(theta), 0}
V = {cos(theta)*sin(phi), sin(theta)*sin(phi), cos(phi)}
Center = {cos(theta)*cos(phi), sin(theta)*cos(phi), sin(phi)}*r

但我被阻止从3D传递到2D。

答案

P在飞机自身基础上的每个点[U, V]的投影坐标由下式给出:

[x', y'] = [dot(P - Center, U), dot(P - Center, V)]

要将其转换为世界坐标,请执行此操作

world_coord = Center + U * x' + V * y'

(如果我误解了你的问题,请告诉我)

以上是关于将云投影指向2D的主要内容,如果未能解决你的问题,请参考以下文章

纹理中的 OpenGL 片段着色器

带有 2D 投影的 3D 线框图:空间组织和投影频率

在 C++ 中的 OpenGL 中将坐标从 3D 透视投影映射到 2D 正交投影

使用 R 进行 2D 投影的 3D 表面

投影3D网格的2D轮廓算法

3D向2D投影