Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ CreateRotation() [2/2]

static Matrix3x2 System.Numerics.Matrix3x2.CreateRotation ( float radians,
Vector2 centerPoint )
inlinestatic

Definition at line 168 of file Matrix3x2.cs.

169 {
170 radians = MathF.IEEERemainder(radians, (float)Math.PI * 2f);
171 float num;
172 float num2;
173 if (radians > -1.7453294E-05f && radians < 1.7453294E-05f)
174 {
175 num = 1f;
176 num2 = 0f;
177 }
178 else if (radians > 1.570779f && radians < 1.5708138f)
179 {
180 num = 0f;
181 num2 = 1f;
182 }
183 else if (radians < -3.1415753f || radians > 3.1415753f)
184 {
185 num = -1f;
186 num2 = 0f;
187 }
188 else if (radians > -1.5708138f && radians < -1.570779f)
189 {
190 num = 0f;
191 num2 = -1f;
192 }
193 else
194 {
195 num = MathF.Cos(radians);
196 num2 = MathF.Sin(radians);
197 }
198 float m = centerPoint.X * (1f - num) + centerPoint.Y * num2;
199 float m2 = centerPoint.Y * (1f - num) - centerPoint.X * num2;
200 System.Runtime.CompilerServices.Unsafe.SkipInit(out Matrix3x2 result);
201 result.M11 = num;
202 result.M12 = num2;
203 result.M21 = 0f - num2;
204 result.M22 = num;
205 result.M31 = m;
206 result.M32 = m2;
207 return result;
208 }
Matrix3x2(float m11, float m12, float m21, float m22, float m31, float m32)
Definition Matrix3x2.cs:40

References System.MathF.Cos(), System.E, System.MathF.IEEERemainder(), System.Math.PI, System.MathF.Sin(), System.Numerics.Vector2.X, and System.Numerics.Vector2.Y.