我正在使用基本的sin和cos操作2D地图非常成功地给出了3d透视图.
我遇到的问题是我试图找到视口中可见的内容.有效地进行反向转换,输出为[0,0]和[宽度,高度],我想知道我的地图上的那些点位于何处.
我已经到了试图扭转的地步:
display_x = (source_x * cos(z)) + (source_y * sin(z))
display_y = (source_y * cos(z)) - (source_x * sin(z))
Run Code Online (Sandbox Code Playgroud)
如果我知道display_x和display_y和source_x和source_y是未知的,我怎么能解决未知是什么?我的联立方程知识有点生疏.
小智 5
你实际上正在使用2d旋转矩阵(我很确定你在display_y的定义中将source_x替换为source_y的拼写错误)
http://en.wikipedia.org/wiki/Rotation_matrix
[ cos(z), sin(z) ] [ source_x ] = [ display_x ]
[-sin(z), cos(z) ] [ source_y ] [ display_y ]
Run Code Online (Sandbox Code Playgroud)
你需要做的就是反转这个矩阵,发现它是转置(在对角线上翻转),因为它保证是正交的.
所以它应该是:
display_x = (source_x * cos(z)) - (source_y * sin(z))
display_y = (source_x * sin(z)) + (source_y * cos(z))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
997 次 |
| 最近记录: |