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