added rotation to vector2
This commit is contained in:
parent
edaddeb109
commit
0d9cf0f7f5
2 changed files with 19 additions and 0 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -5,4 +5,10 @@ void ARC_Vector2_Normalize(ARC_Vector2 *vector){
|
||||||
float length = sqrtf((vector->x * vector->x) + (vector->y * vector->y));
|
float length = sqrtf((vector->x * vector->x) + (vector->y * vector->y));
|
||||||
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));
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue