zoukankan      html  css  js  c++  java
  • 在android上实现绕Y轴旋转(转)

    原理

    a 3×3 affine transformation.

    这里我们使用 Android.graphics.Camera 的 rotateY 接口实现绕 Y 轴旋转时矩阵的运算。

    实现

    基本流程如下所示:

    • Get canvas Matrix m: Matrix m = canvas.getMatrix ();
    • Camera 绕 Y 轴旋转 angle 角度: camera.rotateY (angle);
    • 将 Camera 作用于 m: camera.getMatrix (m);
    • 将矩阵 m 应用于 canvas : canvas.setMatrix (m);
    • 绘制: canvas.drawXXX.

    示例代码如下所示:

    /* double buffer: mCanvas/mBitmap */
    Bitmap mBitmap = Bitmap.createBitmap(50, 50, Bitmap.Config.ARGB_8888);
    Canvas mCanvas = new Canvas (mBitmap);
    
    Paint  mPaint = new Paint ();
    
    Camera mCamera = new Camera();
    
    void onDraw(Canvas canvas) {
    
        mBitmap.eraseColor (0xff000000);
        mCanvas.setBitmap(mBitmap);
    
        Matrix m = mCanvas.getMatrix ();
    
        mCamera.save ();
        mCamera.rotateY (angle);
        mCamera.getMatrix (m);
        mCamera.restore ();
    
        mCanvas.setMatrix (m);
    
        mCanvas.drawText ("5", x0, y0, mPaint);
    
        canvas.drawBitmap(mBitmap, x1, y1, mPaint);
    
    }
    效果图如下所示:

  • 相关阅读:
    表单提交
    后台返回来的数据是字符串
    背景图充满屏幕
    微信小程序添加模板消息
    axios
    前端常见的跨域解决方案
    gulp的压缩
    git的使用步骤
    vue项目使用mint UI
    利用HBuilder将vue项目打包成移动端app
  • 原文地址:https://www.cnblogs.com/shanzei/p/3131169.html
Copyright © 2011-2022 走看看