我有一个图像,从我在我的数据库上的数据渲染。我需要转换这个图像,使用Mercator Projection方法,以扭曲的图像,当我用它包装一个3d球体时,它看起来会很逼真。
有人知道我需要用什么公式来制作失真的图像吗?
我在GD中使用PHP。
谢谢。
发布于 2011-04-03 17:21:29
如果你计划使用普通的图形技术将其包裹在球体周围,我认为你不会严格地想要使用墨卡托投影,因为这在极点不起作用。
球体的标准3D纹理贴图只是一个2:1宽高比的位图,其中X轴直接映射到[0, 360)
经度,Y轴直接映射到[-90, +90]
纬度。
因此,只需从数据库中获取经度/经度值,并将其线性缩放到像素坐标,例如(假设0,0在左上角,w,h是位图的大小):
x = (longitude + 180) * w
y = (90 - latitude) * h
编辑-我读错了问题,没有意识到你已经有了一个图像。如果AIUI原始图像是墨卡托投影中图像,那么您的问题只是取消该图像垂直轴的非线性缩放。水平轴可以保持不变,因为墨卡托使用线性刻度表示经度。
https://stackoverflow.com/questions/5528554
复制相似问题