Hola,
Tu lo haz dicho: se debe proyectar el dibujo 3D a uno 2D, y eso se hace con una
matriz de proyección.
Yo quiero pensar que los puntos que hacen al "cuerpo" ha rotar que se está representando en un Bitmap los tienes guardados en algún vector, matriz o alguna estructura de datos adecuada.... Porque trabajar "a secas" sobre el Bitmap no lo veo demasiado conveniente.
Considero que a nivel lógica se utilice alguna estructura de datos adecuada para poder hacer los cálculos y luego disponer de un procedimiento que se encargue de hacer la "traducción" o correspondencia de dicha estructura rotada y proyectada hacia el Bitmap.
Saludos,