Matrix 如何在Pharo Smalltalk中与雅典/开罗进行视角转换

Matrix 如何在Pharo Smalltalk中与雅典/开罗进行视角转换,matrix,transformation,smalltalk,cairo,pharo,Matrix,Transformation,Smalltalk,Cairo,Pharo,我在雅典/开罗的Pharo Smalltalk中发现了仿射变换功能(旋转、剪切、平移、缩放) 我正在寻找一个视角转换。这可能吗?至少在cairoapi中似乎没有方便的方法 我也一直对这种转变感兴趣 不仅在Pharo,还有其他平台,如Java(Java2D)或HTML5画布 到目前为止,我的发现指出这似乎是不可能的 似乎这些库的开发并没有考虑到3D或3D支持。我看了所有地方,都发现有两条建议: 这应该使用OpenGL来完成 在Cairo/Java2D/canvas上实现转换 我无意听起来是否定

我在雅典/开罗的Pharo Smalltalk中发现了仿射变换功能(旋转、剪切、平移、缩放)

我正在寻找一个视角转换。这可能吗?至少在cairoapi中似乎没有方便的方法


我也一直对这种转变感兴趣

不仅在Pharo,还有其他平台,如Java(Java2D)或HTML5画布

到目前为止,我的发现指出这似乎是不可能的

似乎这些库的开发并没有考虑到3D或3D支持。我看了所有地方,都发现有两条建议:

  • 这应该使用OpenGL来完成
  • 在Cairo/Java2D/canvas上实现转换

我无意听起来是否定的,shuts想分享我的搜索结果,也许可以节省你一些时间。

没有透视变换,因为计算中使用的矩阵是2x3仿射矩阵,它不能产生这样的变换(二维坐标空间上的缩放/旋转组合不能产生这样的结果)。
OpenGL使用完整的4x4矩阵进行坐标变换(通常是3x3+平移列),但这足以创建透视投影之类的变换。

此外,您应该在Pharo邮件列表中询问。几年前,我为VisualWorks端口询问了开罗列表。他们说没有。尽管开发人员对为ImageSurface模式提供一种方法感兴趣。但我认为这从未发生过。