当前位置: 首页 > 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://www.huolong8.cn/news/293856/

相关文章:

  • 黄冈网站优化公司哪家好wordpress ftp备份
  • 国家示范院校建设网站h5 高端网站建设
  • 现在哪个行业做网站需求多点浙江网站建设制作流程
  • 优秀校园网站网络编程培训
  • wordpress网站如何提速乌兰浩特网站开发
  • 贾汪徐州网站开发学网页设计学徒培训
  • 山东信达建设有限公司网站国内的优秀网站
  • 福田网站建设公司北京王府井攻略
  • 网站建设公司的市场开发方案项目融资平台
  • 怎么知道网站是哪个公司做的打开网站自动跳转代码
  • 广州市网站建设制作做高大上分析的网站
  • 赤峰最好的网站建设公司静态网页模板免费下载的网站
  • 网站建设开发公司推荐指数一流的郑州网站建设
  • 做网站网页的专业昌邑做网站的公司
  • 网站平台搭建怎么弄的215做网站
  • 广东网站备案电话号码网站底部版权代码
  • 微信营销推广软件网站建设 seo
  • 网站开发毕设dw6做网站
  • 建设网站的初步需要so域名的网站有哪些
  • 广州网站设计公司推荐哪家网站排名 影响因素
  • 手机网站建设软件网站海外推广方案
  • 天津 网站优化天津建设银行东丽网站
  • typecho做网站自助建站门户网站
  • 网站域名在山东备案却在苏州济南网站优化培训
  • 哪里有放网站的免费空间个人网页制作多少钱
  • 响应式品牌网站设计深圳辰硕网站优化
  • 中山模板建站软件848给我做一下88网站
  • 有哪些做副业的网站青海省公路建设网站
  • 网站建设一对一培训网上书店网网站建设
  • 男女做暧视频网站免费24小时最新国际新闻