圆柱投影到球体

时间:2012-03-12 01:41:40

标签: matlab geometry

我有一个包含高度信息的2d数组(lat * long)。我想将这个圆柱投影映射到半径为r的实际球体并绘制它。

我该怎么做?对不起,这么少的信息,但我现在完全迷失了......

1 个答案:

答案 0 :(得分:1)

经度和纬度不是圆柱坐标;相反,它们相当于球面坐标中的方位角和仰角。在每个纬度和经度,你有一个高度(如果它不是来自中心的真实高度,可能需要添加球体的平均半径)。

查看sph2cart函数,该函数从球形坐标转换为笛卡尔坐标。你必须先从度数转换为弧度。

采取的步骤:

  1. 使用经度创建矩阵(与原始尺寸相同)。
  2. 只是纬度做同样的事情(在此之后你应该有3个与你原来相同尺寸的矩阵 - 纬度,经度,高度)。
  3. 确保那些纬度和经度矩阵在 弧度,而非度数
  4. 确保您的身高信息来自 球体中心
  5. 使用sph2cart获取x,y,z矩阵。
  6. 使用surf(x,y,z)绘制结果
  7. 文档中关于sph2cart的注释:

      

    [x,y,z] = sph2cart(方位角,仰角,r)变换相应的   球面坐标数组的元素到笛卡儿或xyz,   坐标。方位角,仰角和r必须都是相同的大小(或   其中任何一个都可以是标量)。方位角和仰角是有角度的   从正x轴和x-y以弧度为单位的位移   飞机,分别。