计算球体上的等距矩形投影中的失真

时间:2014-03-17 19:22:59

标签: geometry projection

以下来自此来源的报价: http://www.cambridgeincolour.com/tutorials/image-projections.htm

  

Equirectangular图像投影映射纬度和经度   球形球体的坐标直接在水平和垂直上   网格的坐标,此网格的宽度大约是网格的两倍   很高。

我有13312像素的宽度和6656像素的高度全景图片。这是一个房间的矩形投影,比例为2:1。

我使用以下公式计算xPosition:

var xPosition = ( panorama.width / 360 ) * azimuth

方位角= Phi =标题=向左或向右的角度

如何在1366x768px浏览器屏幕上进行投影?

我认为我的结果是错误的,因为它不在应该的位置......可能是因为球体在左右两侧都有失真:

是否有任何公式来计算位置并注意失真并将其缩放以适应浏览器屏幕?我看了很多(很多)来源为此找到解决方案,但他们总是只说equirectangular只是lat和long ..他们不考虑失真。

最后一个问题:为了找到一个特殊的解决方案,我尝试在圆上放置一个平面并展开显示alpha角的线。我虽然与Phytagoras我可以找到位置..但这也没有用..也许我做错了什么?这是可能的方式还是我做错了?

修改

这就是我真正想要的:http://othree.github.io/360-panorama/three-2d/

背景中的黑色网格。这是什么名字?我需要谷歌或寻找什么?当您启动2D Panorama时,如果您想获得窗口右上角的协调,您需要做什么?

2 个答案:

答案 0 :(得分:1)

整个计算问题是要从2:1的equirectangular图像创建一个Google Streetview类似的视图。我们已经在Martin Matysiak(Elysium | Google)的帮助下找到了解决方案。

已经有一段时间了,所以我无法直接回答主要解决方案的内容,但我可以提供一个AddOn Martin写的URL,用于添加我们实际尝试的自定义标记制作。

您可以关注https://github.com/marmat并自己寻找。最后,它帮助解决了主要问题,让我们继续使用我们的主要Google Business Tours框架。

答案 1 :(得分:0)

如果您按照所包含的threejs演示中的链接进行操作,则会转到源代码。

特别注意: https://github.com/mrdoob/three.js/blob/dev/examples/webgl_panorama_equirectangular.html

https://github.com/mrdoob/three.js/blob/dev/src/geometries/SphereBufferGeometry.js

不确定是否有失真。失真来自于纹理映射到球体,球体以3D(openGL)渲染的事实。