我正在尝试翻译三角形条。我的程序获得了人的手指触摸位置并在那里创建了一个盒子。我在应用翻译时遇到问题,在同一个地方的每次触摸时创建形状,然后通过Matrix.translateM将其转换为触摸位置。当我这样做时,我一切都变得棘手!盒子从屏幕边缘向中心拉伸,变得无限小。至少它正在注册触摸。也许它不起作用,因为MotionEvent getX和y并没有规范化?但我不知道这会如何搞乱mvp Matrix。
基本上就像这样onDrawFrame:
对于每个形状 设置属性指针 翻译MMatrix 乘以MM,VM存储在mvp中 乘以MVP,Proj 绘制
我知道视图和项目矩阵有效,因为如果我禁用翻译,它就可以正常工作。
正如预期的那样,它越来越多地翻译每一帧 - 我在形状构造函数中完成了翻译,但为了简单起见,将它放在这里并测试它,同样奇怪的结果
答案 0 :(得分:0)
只有那么小的假代码才有点困难,但我还是会尝试的; 首先确保你已经在你的modelMatrix上调用了Matrix.setIdentity(),其次,确保你的相机不是有一个奇怪的透视导致“无限伸展”。