当前位置: 首页 > news >正文

百度推广做网站苏州网站制作出名 乐云践新

百度推广做网站,苏州网站制作出名 乐云践新,厦门启明星网站建设,虚拟主机免费试用原文地址#xff1a;http://android.xsoftlab.net/training/graphics/opengl/touch.html 使图形按照程序设计的轨迹旋转对OpenGL来说还是不能发挥出它应有的实力。但要是能使用户可以直接控制图形的旋转#xff0c;这才是OpenGL的真正目的。它真正的关键所在就是使程序可以交…原文地址http://android.xsoftlab.net/training/graphics/opengl/touch.html 使图形按照程序设计的轨迹旋转对OpenGL来说还是不能发挥出它应有的实力。但要是能使用户可以直接控制图形的旋转这才是OpenGL的真正目的。它真正的关键所在就是使程序可以交互式触摸。这主要靠重写GLSurfaceView的onTouchEvent()的方法来实现触摸事件的监听。 这节课将会展示如何监听触摸事件来使用户可以旋转图形。 设置触摸监听器 为了可以使OpenGL监听触摸事件必须重写GLSurfaceView类中的onTouchEvent()方法。下面的实现展示了如何监听MotionEvent.ACTION_MOVE事件以及如何使事件驱动图形的旋转. private final float TOUCH_SCALE_FACTOR 180.0f / 320; private float mPreviousX; private float mPreviousY; Override public boolean onTouchEvent(MotionEvent e) {// MotionEvent reports input details from the touch screen// and other input controls. In this case, you are only// interested in events where the touch position changed.float x e.getX();float y e.getY();switch (e.getAction()) {case MotionEvent.ACTION_MOVE:float dx x - mPreviousX;float dy y - mPreviousY;// reverse direction of rotation above the mid-lineif (y getHeight() / 2) {dx dx * -1 ;}// reverse direction of rotation to left of the mid-lineif (x getWidth() / 2) {dy dy * -1 ;}mRenderer.setAngle(mRenderer.getAngle() ((dx dy) * TOUCH_SCALE_FACTOR));requestRender();}mPreviousX x;mPreviousY y;return true; } 这里需要注意的是在计算完旋转的角度之后这个方法调用了requestRender()方法这个方法会通知渲染器可以渲染了。这个方法放在这个地方是最合适的因为帧在这之前并不需要重新绘制除非在角度上发生了变化。不管怎么样这个方法并不会对效率有任何影响除非你也设置了在数据发生改变的时候重新绘制的请求。这种请求通过setRenderMode()方法设置所以要确保下面这行代码没有被注释 public MyGLSurfaceView(Context context) {...// Render the view only when there is a change in the drawing datasetRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY); } 暴露旋转角度 上面的示例代码会要求提供一个公开的成员方法来暴露旋转的角度。一旦渲染代码运行在子线程当中那么必须将这个公共成员声明为volatile。下面的代码声明了这个volatile的属性并暴露了它的get,set方法 public class MyGLRenderer implements GLSurfaceView.Renderer {...public volatile float mAngle;public float getAngle() {return mAngle;}public void setAngle(float angle) {mAngle angle;} } 请求旋转 为了触摸事件驱动旋转需要注释生成角度的代码然后添加mAngle成员属性mAngle中包含了触摸事件所生成的角度 public void onDrawFrame(GL10 gl) {...float[] scratch new float[16];// Create a rotation for the triangle// long time SystemClock.uptimeMillis() % 4000L;// float angle 0.090f * ((int) time);Matrix.setRotateM(mRotationMatrix, 0, mAngle, 0, 0, -1.0f);// Combine the rotation matrix with the projection and camera view// Note that the mMVPMatrix factor *must be first* in order// for the matrix multiplication product to be correct.Matrix.multiplyMM(scratch, 0, mMVPMatrix, 0, mRotationMatrix, 0);// Draw trianglemTriangle.draw(scratch); } 如果完成了上面所描述的步骤那么启动程序然后在屏幕上拖动就可以使三角形旋转起来
http://wiki.neutronadmin.com/news/63290/

相关文章:

  • 学校网站建设策划书模板2023军文职人员招聘网官网
  • php做购物网站网站建设指数是什么意思
  • 校级特色专业建设网站石家庄优化seo
  • 大连seo整站优化西宁思帽网站建设
  • 网站运营外包协议购物网站模块
  • 自己做的网站别人怎么在网站做自己的产品广告
  • 网站免费建站方法企业邮箱163登录入口
  • 福州云建站网站视频怎么做
  • 网站推广排名服务一微网站建设公司
  • dedecms怎么部署网站做网站自己买服务器好还是用别人的
  • asp添加网站管理员网站数据中心的建设
  • 网站文件夹怎么做潜江资讯网房屋出租
  • 短视频网站平台怎么做的如何运行wordpress
  • 学网站建设好吗做做网站已更新
  • 百度免费建网站浙江省建设工程检测协会网站
  • 做网站图注意事项网站制作中企动力优
  • 网站全网建设莱芜做网站比特币钱包
  • 海伦市网站成都市网站建设公
  • 换空间对网站排名的影响吗易语言做网站爆破工具
  • 自做闪图网站网件路由器无法登录
  • 保定市建网站的公司长沙棋牌软件制作开发
  • 技术支持 沧州网站建设旅游网站的建设现状
  • wordpress的主题说明wordpress终极优化
  • 网站建设 的类型有哪些安装wordpress出现数据表不可以
  • 好网站欣赏怎样搭建电商平台
  • 外国网站怎么进入sem优化专员
  • 网站制作公司dedecms好看的论坛源码
  • 广东省示范校建设专题网站策划咨询
  • 做网站图片格式制作人小说
  • 中国最大的软件公司排名网站seo在线检测