android - 适用于 Android 的 OpenGL ES 2.0 翻译 - 似乎弄乱了矩阵

标签 android opengl-es matrix opengl-es-2.0 translate

我正在尝试翻译一个三角形带。我的程序获取人的手指触摸的位置并在那里创建一个框。我在应用翻译时遇到问题,形状是在同一位置的每次触摸时创建的,然后通过 Matrix.translateM 转换为触摸位置。当我这样做时,我的一切都变得一团糟!盒子从屏幕的边缘向中心拉得很细,变得无限小。至少它正在记录触摸。也许它不起作用,因为 MotionEvent getX 和 y 而不是标准化?但我不明白这会如何扰乱 mvp 矩阵。

基本上是这样的onDrawFrame:

对于每个形状 设置属性指针 翻译矩阵 乘以MM,VM存入mvp 乘以 MVP,Proj 绘制

我知道 View 和投影矩阵可以正常工作,因为如果我禁用转换它就可以正常工作。

正如预期的那样,它在每一帧上的翻译越来越多——我在形状的构造函数中完成了翻译,但为了简单起见,将它放在这里并进行了测试,同样奇怪的结果

最佳答案

只有那一小段伪代码有点难,但无论如何我都会尝试; 首先确保您在 modelMatrix 上调用了 Matrix.setIdentity(),其次,确保不是您的相机具有导致“无限拉伸(stretch)”的奇怪视角。

关于android - 适用于 Android 的 OpenGL ES 2.0 翻译 - 似乎弄乱了矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8379409/

相关文章:

android - 在 Android 上以高帧率绘制高分辨率动画

python - 在矩阵中每隔一行添加一个新行,其元素是其上方和下方元素的平均值

java - 在android中查找触摸事件之间的持续时间

opengl-es - 如何有效地将深度缓冲区复制到 OpenGL ES 上的纹理

android - 绘制固定长度曲线

matlab - 如何在其他两个矩阵之间按行划分/拆分矩阵?

numpy - Numpy 是否具有内置的元素矩阵模幂实现

java - 如果不从已销毁的 Activity 中移除,监听器是否会造成内存泄漏?

android - 如何去掉对话框中的那一行?

android - React Native WebView,如何存储用户名和密码