EDIT: What the hell, I completely misinterpreted the question! Saved for posterity (I thought the question was "how do I get an object to spin around another object):
What you need to learn about is something called a scene graph. The basic principle is very simple:
I hope this answers your question. :)
EDIT: After you've done this, you now have both the object and the camera in world space. The main thing about rasterization is that you have to transform the world coordinates into screen coordinates somehow.
The easiest way to do this is to ignore z:
screen.x = world.x;
screen.y = world.y;
If you have a rotating teapot, you will see a rotating teapot on the screen. However this isn't a very good implementation. If you want to do it correctly, you will have to subtract from the world position the camera position (effectively turning world space positions into camera space positions) and use the camera matrix to transform the coordinates.
Here's how I project a triangle in my own software rasterizer:
Vec3 camera_space;
for (int i = 0; i < 3; i++)
{
Vec3 translated = a_Triangle->v[i] - m_Position;
camera_space.x =
(translated.x * m_Rotation[Mat4x4::X1]) +
(translated.y * m_Rotation[Mat4x4::Y1]) +
(translated.z * m_Rotation[Mat4x4::Z1]);
camera_space.y =
(translated.x * m_Rotation[Mat4x4::X2]) +
(translated.y * m_Rotation[Mat4x4::Y2]) +
(translated.z * m_Rotation[Mat4x4::Z2]);
camera_space.z =
(translated.x * m_Rotation[Mat4x4::X3]) +
(translated.y * m_Rotation[Mat4x4::Y3]) +
(translated.z * m_Rotation[Mat4x4::Z3]);
//#define FOV_ANGLE 60.f
//static const float FOV_TAN = tanf(Math::RadToDeg(FOV_ANGLE) / 2);
const float distance = m_TargetHeightHalf / (FOV_TAN * camera_space.z);
a_Triangle->p[i].x = m_TargetWidthHalf + (camera_space.x * distance);
a_Triangle->p[i].y = m_TargetHeightHalf + (camera_space.y * -distance);
a_Triangle->depth[i] = -distance;
}



