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 };
    }
  • 相关阅读:
    求树的直径算法
    二叉排序树BST+求树深度算法
    HDU1114Piggy-Bank(完全背包)
    HDU1102(最小生成树Kruskal算法)
    NYoj289苹果(0-1背包)
    NYOJ201作业题
    C#发送邮件附件
    JS用户登录保存账号密码
    远程连接服务器
    博客园页面更新了
  • 原文地址:https://www.cnblogs.com/hont/p/6017172.html
Copyright © 2011-2022 走看看