Nimerion 0 Newbie Poster

Hello guys, Happy New Year!
I want to ask some questions, that I didn't find enough information about, so I thought that the people from DaniWeb can help me figure it out better.
So here is the problem..
I want to make a 2D physics and math, just to practice my brain for further game development.
The problem is that I want to write a rotation method or function, that will calculate the rotation of a surface, but I failed to figure out, how can I implement it in SDL.

Here is what am I trying to do:

/**
*   I use the SDL_Rect as a position coordinate.
*   currentPosition is the position that I want to move around my origin.
*   origin is the origin, that's where the currentPosition will move around.. (duh)
*   The Idea is to calculate the angles of the Surface rectangle and to redraw them, according to the origin.
*/
SDL_Rect Rotate(SDL_Rect currentPosition, SDL_Rect origin, float angle){
    SDL_Rect drawFrom;
    drawFrom.x = origin.x + (currentPosition.x - origin.x)*cos(angle*PI/180) - (currentPosition.y - origin.y)*sin(angle*PI/180);
    drawFrom.y = origin.y + (currentPosition.x - origin.x)*sin(angle*PI/180) + (currentPosition.y - origin.y)*cos(angle*PI/180);
    return drawFrom;
}

Sadly I don't know how do I make the surface draw to the new points I've just calculated.. (I guess it's a lack of knowledge in SDL, but still..)
I don't want to use the "rotozoomXY" from SDL_gfx.h, before I can do it myself..