If you have a plane, you have a normal vector and an origin. I wouldn't do any "rotations" at all. You're just a few vector operations away from your answer.
- Let's call your plane's normal vector the new z axis.
- You can generate the new y axis by crossing the old x axis with the new z axis (your plane's normal).
- Generate the new x axis by crossing the new z with the new y.
- Make all your new axis vectors into unit vectors (length 1).
- For every point you have, create a vector that's from your new origin to the point (vector subtraction of point - plane_origin). Just dot with the new x and new y unit vectors and you get a pair (x,y) you can plot!
If you have cross and dot product functions already, this is just a few lines of code. I know it works because most of the 3D videogames I wrote worked this way.
Tricks:
- Pay attention to which directions your vectors are pointing. If they point the wrong way, negate the resultant vector or change the order of the cross product.
- You have trouble if your plane's normal is exactly the same as your original x axis.