【问题标题】:How do I map a spherical triangle to a plane triangle?如何将球面三角形映射到平面三角形?
【发布时间】:2011-03-19 07:36:33
【问题描述】:

晷投影将球面三角形映射到直边平面三角形。

但我听说张伯林三度投影失真较小,所以我想改用它。 唉,当我使用我的(非常粗糙且可能有问题的)Chamberlin 三度投影实现将由其 3 个基点形成的球面三角形映射到平面时,我似乎得到了一个几乎的形状一个三角形,但三个“线”弯曲并凸出。 这是我的代码中的错误,还是应该这样做?

有没有其他方法可以将球面三角形映射到直边平面三角形,其失真比晷投影小?

编辑: 我的目标是制作一个地球的自定义"polyhedral map"。 如果您从"Map Fold-outs" 页面打印出某些内容,您将获得几乎与我正在尝试制作的内容完全相同的内容。

我有 2 个三角形。 一个是在 3D 地球仪上绘制的球形三角形。 根据定义,球面三角形的每条边都是大圆的一部分。 当您查看那个 3D 地球仪时,有一堆城市、海岸线等(希望)准确地绘制在那个 3D 地球仪上,在那个球形三角形内。

另一个三角形是平面 (2D) 直边欧几里得三角形。在纸上。 目前那个三角形的内部是空白的白纸,但最终我想把所有这些城市、海岸线等的副本画到那个区域。

每个地图投影都会将该 3D 球面三角形映射到 2D 图像。然后很容易(在 2D 中)旋转、滑动和收缩,甚至可能倾斜该图像,直到 3 个角与我的平面三角形的 3 个角完全对齐。 如果我将一堆不同地图投影的结果堆叠在一起, 即使我已经强制三个角完全对齐, 每个投影都会将城市置于稍微不同的位置。 不幸的是,许多投影采用稍微位于球形三角形内部的城市,并将它们绘制在平面二维三角形之外。 (这个问题的一个症状是球面三角形的边 被映射到其端点与角正确匹配的平面(2D)曲线,但它们从角之间绘制的完美直线略微向外凸出)。 这导致这座城市在我的多面体地图中完全消失了。

我宁愿不要冒险让一些波兰数学家对华沙莫名其妙地从我制作的平面、平面 (2d) 纸质地图上丢失 :-) 感到不安。

所以我正在寻找“保持在线条内”的地图投影。 我需要 3 个特定的大圆(球形三角形的边缘)映射到纸上的直线。 我不关心其他个大圆圈——直的、非直的等等。

我听说Dymaxion map 使用的地图投影符合该标准;有人告诉我,他认为它使用了张伯林三角投影。 但显然要么(a)我使用了错误的方程式——那么我在哪里可以找到正确的方程式?或者 (b) Dymaxion 实际上使用了其他一些投影——那么我在哪里可以找到该投影的方程?

哪些地图投影符合该标准? 你能给我一个链接到那个投影的 (x,y) = f(lat, long) 方程吗?

我正在寻找表格的答案 "gnomonic 投影符合您的标准。gnomonic projection equations。"

【问题讨论】:

  • 使用非欧几里得三角形不是固有的某种曲线吗?我想凭直觉,我希望三角形的每条边都是一个大圆圈的一部分——这些“凸起”是相对于那个圆圈吗?
  • 无论如何我都无法回答这个问题 ;-) 但对于我们这些好奇的人来说,您是否有机会在一张或两张图片中链接以表明您得到了什么与什么你想得到吗?
  • 我添加了一个指向一些漂亮图片的链接,以表明我想要得到什么。史蒂夫,我在问题陈述中添加了(可能太多)细节——这能回答你的问题吗?

标签: algorithm geometry gis platform-independent


【解决方案1】:

我刚刚看过这里...

http://en.wikipedia.org/wiki/Chamberlin_trimetric_projection

我认为关键词是“投影的主要特征是它在面积、方向和距离的扭曲之间进行折衷。” - 特别是“妥协”。

在从欧几里得曲面到非欧几里得曲面的任何投影中,必须存在扭曲。问题不在于“多少失真”,而在于“什么样的”。 Gnomic 投影大概不会在保持线条的线性度方面做出妥协,但因此会产生更多其他类型的失真。

不过,这不是我的领域,所以我可能会错过重点。

编辑我不禁注意到,在维基百科页面上的插图中,经纬线不是直线。

【讨论】:

  • 谢谢。是的,我看到大多数子午线(经线)都不是直的,因此张伯林三度法不会将 每个 大圆映射到一条直线——只有 gnomic 投影可以做到这一点。然而,我(错误地?)相信张伯林三度法确实将一些大圆映射到直线——特别是每对控制点之间的大圆。从那个插图中我看不出这三个大圆是否映射为直线。
【解决方案2】:

我会回答标题*,因为我不完全理解问题的主体。

答案是:你不能。在保持相同测地线(大圆圈直线)的同时,您将无法将球体映射到平面。后者是平的,前者是弯曲的。

如果您可以将测地线映射到测地线,则两个表面将具有相同的(固有)曲率,而它们没有。

(*) 不完全是:我回答“我可以将球体的所有三角形映射到平面的三角形吗?”。

【讨论】:

  • 日晷投影实际上确实将“球体上的大圆段”映射到“平面上的直线段”。见en.wikipedia.org/wiki/gnomonic_projection
  • 嗯,你是对的。日晷投影不能一次将整个球体映射到一个平面。真可惜。看起来我将不得不将整个球体切割成球形三角形,然后将每个球形三角形独立地映射到不同的平面。我可以使用哪些投影?
【解决方案3】:

所有地图投影都会扭曲点之间的部分或全部面积、距离和方位。正如您注意到的那样,日光投影将大圆(弧)映射到直线,因此它将球面三角形映射到平面三角形。它是唯一具有此属性的投影。同样真实的是,日光图上的直线是大圆的弧。

此属性不可避免地意味着日光图的其他方面会出现失真。

【讨论】:

  • 我同意日光投影是唯一将每个大圆映射到直线的投影。但是,我不同意它是唯一可以将球面三角形映射到平面三角形的投影。 Collignon 投影和 Peirce 梅花形投影都可以将八分圆(具有 90 度角的球面三角形)映射到直边平面三角形。详情请参阅progonos.com/furuti/MapProj/Normal/ProjPCyl/…en.wikipedia.org/wiki/Peirce_quincuncial_projection
  • @David:你说得对,我应该写“晷投影是唯一将每个球面三角形映射到平面三角形的投影。”感谢您指出我使用存在限定词的不足之处。
【解决方案4】:

我去过那里,我知道对于你它的东西绝对不是一个完美的投影......绝对没有。但是有一些比其他的更好。

您最好的镜头是自动定向立体摄影。首先,您应该找到要投影的多边形的质心,然后使用以该轴为中心的立体投影。

http://en.wikipedia.org/wiki/Stereographic_projection http://mathworld.wolfram.com/StereographicProjection.html

在第二个中你会找到大部分你需要的东西,但我警告你,它不会很漂亮,而且会很痛苦。

最后,唯一真正的解决方案是直接在 3D 中操作,但这需要非常高级的几何图形,而这在岩石或超市中是找不到的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 2016-06-12
    • 2014-12-06
    相关资源
    最近更新 更多