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