zoukankan      html  css  js  c++  java
  • 2x2矩阵相乘模版

    由于Unity只有4x4矩阵,今天要做一个2x2矩阵的旋转,居然忘了顺序。故写下作为模版记录。

    顺序:

    下面是使用其进行旋转的C#代码:

    public struct Position
    {
        public int X;
        public int Y;
    
        public override string ToString() { return "X: " + X + " Y: " + Y; }
    }
    
    void OnEnable()//Execute
    {
        var position = new Position() { X = 1, Y = 0 };
        var anchor = new Position() { X = 0, Y = 0 };
    
        Debug.Log("position: " + position);//print position: X: 1 Y: 0
        position = Rotation(90, position, anchor);
        Debug.Log("position rot: " + position);//print position rot: X: 0 Y: 1
    }
    
    Position Rotation(float rotValue, Position pos, Position anchor)
    {
        var matrix00 = Mathf.Cos(rotValue * Mathf.Deg2Rad);
        var matrix01 = -Mathf.Sin(rotValue * Mathf.Deg2Rad);
        var matrix10 = Mathf.Sin(rotValue * Mathf.Deg2Rad);
        var matrix11 = Mathf.Cos(rotValue * Mathf.Deg2Rad);
    
        var x = (float)pos.X - anchor.X;
        var y = (float)pos.Y - anchor.Y;
    
        var rx = matrix00 * x + matrix01 * y;
        var ry = matrix10 * x + matrix11 * y;
    
        x = anchor.X + rx;
        y = anchor.Y + ry;
    
        var intX = Mathf.RoundToInt(x);
        var intY = Mathf.RoundToInt(y);
    
        return new Position() { X = intX, Y = intY };
    }
  • 相关阅读:
    greenlet和gevent模块的区别?
    Python整型int、浮点float常用方法
    jquery的相关应用
    mongoDB在java上面的应用
    SpringAOP的两种实现方式
    svn 服务器搭建 (Linux)
    maven的两种打包方式
    MongoDB 安装与配置
    springmvc拦截器配置
    Linux下安装mysql
  • 原文地址:https://www.cnblogs.com/hont/p/6017172.html
Copyright © 2011-2022 走看看