added rotation to vector2

This commit is contained in:
herbglitch 2023-02-19 12:11:33 -07:00
parent edaddeb109
commit 0d9cf0f7f5
2 changed files with 19 additions and 0 deletions

View file

@ -13,8 +13,21 @@ typedef struct ARC_DVector2 {
double x, y; double x, y;
} ARC_DVector2; } ARC_DVector2;
/**
* @brief normalizes a given ARC_Vector2
*
* @param vector the ARC_Vecotr2 to normallize
*/
void ARC_Vector2_Normalize(ARC_Vector2 *vector); void ARC_Vector2_Normalize(ARC_Vector2 *vector);
/**
* @brief rotates a given ARC_Vector2 by a given angle in degrees
*
* @param vector the ARC_Vector2 to rotate
* @param angle the angle in degrees to rotate by
*/
void ARC_Vector2_RotateDegree(ARC_Vector2 *vector, float angle);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View file

@ -6,3 +6,9 @@ void ARC_Vector2_Normalize(ARC_Vector2 *vector){
vector->x /= length; vector->x /= length;
vector->y /= length; vector->y /= length;
} }
void ARC_Vector2_RotateDegree(ARC_Vector2 *vector, float angle){
ARC_Vector2 temp = *vector;
vector->x = (temp.x * cos(angle)) - (temp.y * sin(angle));
vector->y = (temp.x * sin(angle)) + (temp.y * cos(angle));
}