我正在使用PyGTK编写一个显示gtk.Image的程序。桌面投射到球形圆顶的内部。如果在屏幕上显示的图像是矩形的,一旦投影到球体上,它就会变形。
帮助描绘一下:桌面本身是方形的。桌面的中心像素投影到天顶,方形桌面内的圆圈成为地平线(极坐标中的0度仰角)。除此之外的所有内容(在桌面的角落)都不会显示。
我想以某种方式修改gtk.Image,使其在球面上仍然呈矩形。我确信这个投影如何完成有很多细节,但非常简单,我必须将矩形图像转换为弯曲的梯形。转换为极坐标范围(例如,将此矩形映射到两个方位角和两个仰角之间的区域)将是一个很好的第一近似值,但您可以想象如果仰角为0和90,则生成的图像将是球体的楔形,看起来根本不是矩形。
如何将这样的转换应用于gtk.Image(或其基础Pixbuf)?是否有包可以做到这一点?如果没有,我该如何从头开始编写?据推测,我必须拉出像素值,将它们映射到一些新的网格,并替换原始图像。我只是不想重新发明已经完成的事情。