如何将球面三角形映射到平面三角形?
心轴投影将球面三角形映射到直边平面三角形。
但我听说张伯伦三轴投影的失真较小,所以我想改用它。 唉,当我使用我的(极其粗糙且可能有缺陷的)张伯伦三轴投影实现将其 3 个基点形成的球面三角形映射到平面时,我似乎得到了一个几乎的形状一个三角形,但三条“线”弯曲并凸出。 这是我的代码中的错误,还是应该这样做?
是否有其他方法将球面三角形映射到直边平面三角形,其失真度比心轴投影更小?
编辑: 我的目标是制作一个自定义 "多面体地图"地球的。 如果您从“地图折叠”< /a> 页面,您将得到几乎与我正在尝试制作的内容完全相同的内容。
我有2个三角形。 第一个是在 3D 地球仪上绘制的球形三角形。 根据定义,球面三角形的每条边都是大圆的一部分。 当您查看 3D 地球仪时,(希望)有许多城市、海岸线等准确地绘制在该 3D 地球仪上的球形三角形内。
另一个三角形是平坦的平面 (2D)、直边欧几里得三角形。在纸上。 目前,该三角形的内部是空白的白纸,但最终我想将所有这些城市、海岸线等绘制到该区域中。
每个地图投影都会将该 3D 球形三角形映射到 2D 图像。然后很容易(在 2D 中)旋转、滑动、收缩,甚至倾斜该图像,直到 3 个角与我的平面三角形的 3 个角完全对齐。 如果我将一堆不同地图投影的结果堆叠在一起, 即使我强迫 3 个角完全对齐, 每个预测都会将城市置于略有不同的位置。 不幸的是,许多投影将稍微位于球形三角形内部的城市绘制在平面二维三角形稍稍外部的位置。 (这个问题的一个症状是球面三角形的边 映射到平面(2D)曲线,其端点与角正确匹配,但它们从在角之间绘制的完美直线稍微向外凸出)。 这导致这座城市从我的多面体地图中完全消失了。
我不想冒一些波兰数学家因为我制作的平面(2d)纸质地图中莫名其妙地缺少华沙而感到不安的风险:-)。
所以我正在寻找“将其保持在线条内”的地图投影。 我需要 3 个特定的大圆(球形三角形的边缘)来映射到纸上的直线。 我不关心其他大圆——直的、非直的,等等。
我听说用于 Dymaxion 地图 的地图投影符合该标准;有人告诉我,他认为它使用了张伯伦三轴投影。 但显然 (a) 我使用了错误的方程——那么我在哪里可以找到正确的方程呢?或者 (b) Dymaxion 实际上使用了一些其他投影 - 那么我在哪里可以找到该投影的方程?
哪些地图投影符合该标准? 您能给我该投影的 (x,y) = f(lat, long) 方程的链接吗?
我正在寻找以下形式的答案 “日心投影符合您的标准。日心投影方程。”
The gnomonic projection maps spherical triangles to straight-edged plane triangles.
But I've heard that the Chamberlin trimetric projection has less distortion, so I'd like to use that instead.
Alas, when I use my (extremely rough and probably buggy) implementation of Chamberlin trimetric projection to map the spherical triangle formed by its 3 base points to the plane, I seem to be getting a shape that is almost a triangle, but the three "lines" curve and bulge out.
Is that a bug in my code, or is it supposed to do that?
Is there some other way of mapping a spherical triangle to a straight-edged plane triangle that has less distortion than the gnomonic projection?
EDIT:
My goal here is to make a custom "polyhedral map" of Earth.
If you print out something from the "Map Fold-outs" page, you will have something almost exactly like what I'm trying to make.
I have 2 triangles.
One is a spherical triangle drawn on a 3D globe.
By definition, each edge of a spherical triangle is part of a great circle.
When you look at that 3D globe, there are a bunch of cities, coastlines, etc. that are (hopefully) accurately plotted on that 3D globe, inside that spherical triangle.
The other triangle is a flat, plane (2D), straight-edged, Euclidean triangle. On paper.
At the moment the interior of that triangle is blank white paper, but eventually I want to draw a copy of all those cities, coastlines, etc. into that area.
Every map projection will map that 3D spherical triangle to a 2D image. Then it's easy to (in 2D) rotate and slide and shrink, and perhaps skew, that image until the 3 corners exactly line up with the 3 corners of my plane triangle.
If I stack the results of a bunch of different map projections on top of each other,
even though I've forced the 3 corners to exactly line up,
each projection will put the cities in a slightly different location.
Unfortunately, many projections take cities that are slightly inside the spherical triangle and draw them slightly outside the flat 2D triangle.
(One symptom of this problem is that the sides of the spherical triangle
are mapped to plane (2D) curves whose endpoints match the corners properly, but they bulge outward slightly from perfectly straight lines drawn between the corners).
That leads to the city being completely missing from my polyhedral map.
I'd rather not run the risk of some Polish mathematician getting upset that Warsaw is inexplicably missing from the flat, plane (2d), paper map that I've made :-).
So I'm looking for map projections that "keep it inside the lines".
I need 3 specific great circles (the edges of the spherical triangle) to be mapped to straight lines on paper.
I don't care about other great circles -- straight, non-straight, whatever.
I hear that the map projection used for the Dymaxion map meets that criteria; and someone told me that he thought it used the Chamberlin trimetric projection.
But apparently either (a) I'm using the wrong equations -- so where can I find the right equations? Or (b) Dymaxion actually uses some other projection -- so where can I find the equations for that projection?
What map projections meet that criteria?
And can you give me a link to the (x,y) = f(lat, long) equations for that projection?
I'm looking for answers of the form
"The gnomonic projection meets your criteria. The gnomonic projection equations."
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我刚刚看了这里...
http://en.wikipedia.org/wiki/Chamberlin_trimetric_projection
我认为关键词是“投影的主要特征是它在面积、方向和距离的扭曲之间进行折衷”。 - 特别是“妥协”。
在从欧几里德曲面到非欧几里德曲面的任何投影中,必须存在扭曲。问题不在于“失真程度”,而在于“失真程度”。基因投影大概在保留线条的线性方面没有做出任何妥协,但因此有更多其他类型的失真。
不过,这不是我的领域,所以我可能没有抓住重点。
编辑我不禁注意到维基百科页面上的插图中,纬度和经度线不是直线。
I've just looked here...
http://en.wikipedia.org/wiki/Chamberlin_trimetric_projection
I think the key words are "The projection's principal feature is that it compromises between distortions of area, direction, and distance." - in particular "compromises".
In any projection from a Euclidean to a non-Euclidean surface, there must be distortions. The issue isn't "how much distortion" so much as "what kind". Gnomic projection presumably makes no compromises in terms of preserving the linearity of lines, but therefore has more of other kinds of distortion.
Not my field, though, so I could be missing the point.
EDIT I can't help noticing that in the illustration on the Wikipedia page, the latitude and longitude lines aren't straight lines.
我去过那里,我知道这绝对不是一个完美的投影,适合你的东西……绝对没有。但有些比其他更好。
最好的镜头是自动定向的立体摄影。首先,您应该找到要投影的多边形的质心,然后使用以该轴为中心的立体投影。
http://mathworld.wolfram.com/SteregraphicProjection.html
在这两个中,您会发现大部分你需要的东西,但我警告你,它不会很美丽,而且会很伤人。
最后,唯一真正的解决方案是直接在 3D 中操作,但这需要非常先进的几何形状,而这在岩石下或超市中是找不到的。
I've been there and I know is absolutly not a single perfect projection for the thing you it... Absolutly none. BUT there are some better than others.
Your best shot is an auto oriented stereographic. First you should find the centroid of the polygon you want to project and then use the stereographic projection centered on that axe.
http://en.wikipedia.org/wiki/Stereographic_projection
http://mathworld.wolfram.com/StereographicProjection.html
In thouse two you will find most of the things you need to, but I'm warning you, it will not be beautiful and it will hurt a lot.
In the end the only real solution is operating directly in 3D but that requires really advanced geometry that is not found under the rocks or the supermarket.
我会回答标题*,因为我不完全理解问题正文。
答案是:你不能。您将无法将球体映射到平面,同时保持相同的测地线(大圆 <-> 直线)。后者是平坦的,前者是弯曲的。
如果您可以将测地线映射到测地线,则两个曲面将具有相同的(固有)曲率,但它们却没有。
(*) 不完全是:我回答“我可以将球体的所有三角形合理地映射到平面的三角形吗”。
I will answer the title*, because I don't fully understand the question body.
Answer is : you can't. You won't be able to map the sphere to the plane while keeping the same geodesics (great circles <-> straight lines). The latter is flat, the former is curved.
If you could map geodesics to geodesics, the two surfaces would have the same (intrinsic) curvature, and they have not.
(*) not quite: I answer "Can I map all triangles of a sphere to triangles of the plane sensibly".
所有地图投影都会扭曲点之间的部分或全部面积、距离和方位。正如您所注意到的,心轴投影将大圆(的圆弧)映射到直线,因此它将把球面三角形映射到平面三角形。它是唯一具有此属性的投影。日心图上的直线也是大圆的弧,这也是事实。
这一特性不可避免地意味着日心图的其他方面会出现扭曲。
All map projections distort some or all of area, distance and bearings between points. As you note the gnomonic projection maps (arcs of) great circles to straight lines, so it will map a spherical triangle to a plane triangle. It is the only projection which has this property. It is also true that a straight line on a gnomonic chart is an arc of a great circle.
This property inevitably means that there will be distortions in other aspects of a gnomonic chart.