Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenGL还原由转换矩阵完成的所有转换_Opengl_Matrix_Mouseover_Transformation - Fatal编程技术网

OpenGL还原由转换矩阵完成的所有转换

OpenGL还原由转换矩阵完成的所有转换,opengl,matrix,mouseover,transformation,Opengl,Matrix,Mouseover,Transformation,我想在一个点上应用一个逆变换矩阵。 这是干什么用的 我的应用程序(游戏)将变换应用到几个方块对象中,每个方块都有自己的变换矩阵,在绘制时应用 但是我需要知道鼠标是否在每个物体上。因此,对于每个对象,我获得鼠标位置,并尝试反向应用所有变换。将正方形和鼠标位置还原为其原点 如果我是对的,这样我就可以将变换后的鼠标位置与对象束进行比较 问题是如何应用此反向转换? 我尝试了逆矩阵,但它始终存在…如果变换矩阵没有逆矩阵(对于大多数常见的变换来说非常不可能),则无法撤消变换。这就是没有逆的意思:变换是单向的

我想在一个点上应用一个逆变换矩阵。 这是干什么用的 我的应用程序(游戏)将变换应用到几个方块对象中,每个方块都有自己的变换矩阵,在绘制时应用

但是我需要知道鼠标是否在每个物体上。因此,对于每个对象,我获得鼠标位置,并尝试反向应用所有变换。将正方形和鼠标位置还原为其原点

如果我是对的,这样我就可以将变换后的鼠标位置与对象束进行比较

问题是如何应用此反向转换?
我尝试了逆矩阵,但它始终存在…

如果变换矩阵没有逆矩阵(对于大多数常见的变换来说非常不可能),则无法撤消变换。这就是没有逆的意思:变换是单向的


此外,通常的方法不是将鼠标坐标转换为世界空间,而是将对象(或其边界框)转换为窗口空间。

如果转换矩阵没有逆矩阵(大多数常见的转换不太可能),则无法撤消转换。这就是没有逆的意思:变换是单向的

此外,通常的做法不是将鼠标坐标转换为世界空间,而是将对象(或其边界框)转换为窗口空间。

您可能想试试。

您可能想试试