hyades.physics.VectorHelper.Rotate C# (CSharp) Метод

Rotate() публичный статический Метод

rotate a vector by a given angle (in radians).
public static Rotate ( Vector2 vector, float radians ) : Vector2
vector Vector2
radians float
Результат Vector2
        public static Vector2 Rotate(Vector2 vector, float radians)
        {
            Vector2 ret = new Vector2();
            float c = (float)Math.Cos(radians);
            float s = (float)Math.Sin(radians);
            ret.X = (c * vector.X) - (s * vector.Y);
            ret.Y = (c * vector.Y) + (s * vector.X);

            return ret;
        }

Same methods

VectorHelper::Rotate ( Vector2 &vector, float radians ) : void
VectorHelper::Rotate ( Vector2 &vectorIn, float radians, Vector2 &vectorOut ) : void

Usage Example

Пример #1
0
        public void ApplyForce(ref Vector2 point, ref Vector2 force)
        {
            Vector2 R = (position - point);

            float torqueF = Vector3.Cross(VectorHelper.Vector3FromVector2(R), VectorHelper.Vector3FromVector2(force)).Z;

            for (int i = 0; i < count; i++)
            {
                Vector2 toPt   = (pointmass_list[i].position - position);
                Vector2 torque = VectorHelper.Rotate(toPt, -(float)(Math.PI) / 2f);

                pointmass_list[i].force += torque * torqueF;
                pointmass_list[i].force += force;
            }
        }