博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2x2矩阵相乘模版
阅读量:6845 次
发布时间:2019-06-26

本文共 1163 字,大约阅读时间需要 3 分钟。

由于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 };}

 

转载于:https://www.cnblogs.com/hont/p/6017172.html

你可能感兴趣的文章