From c47b92e92cf33ae8bf2f38929e137294397e4735 Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 7 Apr 2021 21:33:14 +0800 Subject: +init --- Assets/Scripts/Common/Matrix2x3.cs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 Assets/Scripts/Common/Matrix2x3.cs (limited to 'Assets/Scripts/Common/Matrix2x3.cs') diff --git a/Assets/Scripts/Common/Matrix2x3.cs b/Assets/Scripts/Common/Matrix2x3.cs new file mode 100644 index 0000000..ec2cb69 --- /dev/null +++ b/Assets/Scripts/Common/Matrix2x3.cs @@ -0,0 +1,33 @@ +using UnityEngine; + +namespace Coffee.UIEffects +{ + /// + /// Matrix2x3. + /// + public struct Matrix2x3 + { + public float m00, m01, m02, m10, m11, m12; + + public Matrix2x3(Rect rect, float cos, float sin) + { + const float center = 0.5f; + float dx = -rect.xMin / rect.width - center; + float dy = -rect.yMin / rect.height - center; + m00 = cos / rect.width; + m01 = -sin / rect.height; + m02 = dx * cos - dy * sin + center; + m10 = sin / rect.width; + m11 = cos / rect.height; + m12 = dx * sin + dy * cos + center; + } + + public static Vector2 operator *(Matrix2x3 m, Vector2 v) + { + return new Vector2( + (m.m00 * v.x) + (m.m01 * v.y) + m.m02, + (m.m10 * v.x) + (m.m11 * v.y) + m.m12 + ); + } + } +} -- cgit v1.1-26-g67d0