Assuming your rotation
variable is an angle in radians around your object's origin
point, and your point
variable is an offset vector relative to the origin in the object's local coordinate space, then this is simply:
public static Vector2F CalcPointWithRotation(Vector2F origin, Vector2F point, float rotation)
{
float c = (float)Math.Cos(rotation);
float s = (float)Math.Sin(rotation);
return new Vector2F(
origin.x + c * point.x - s * point.y,
origin.y + s * point.x + c * point.y,
);
}
You may recognize this as a matrix multiplication:
$$\vec p ^\prime = \begin{bmatrix} \cos\theta &-\sin\theta\\\sin \theta & cos\theta \end{bmatrix}\vec p + \vec o$$
Or with a homogeneous matrix...
$$\begin{bmatrix}p^\prime_x \\ p^\prime_y \\ 1 \end{bmatrix} =
\begin{bmatrix} \cos\theta &-\sin\theta & o_x\\\sin \theta & cos\theta
& o_y \\ 0 & 0 & 1\end{bmatrix}
\begin{bmatrix}p_x \\ p_y \\ 1 \end{bmatrix}$$
When rotation is 0 (or 2 pi, 4 pi, etc.) then this just gives origin + point. As the rotation value increases, the offset from the origin swings around, tracing a circle around that point.