<font color='black' size='2' face='arial'><font size="2"><br>
These are a few more programs for testing out the possibility of 3d rotations and perspective in cairo. The mesh maker program uses only cairo to rotate 2d drawings in 3d. It tests some gradients and works well.<br>
<br>
https://gitlab.com/cecashon/OrderedSetVelociRaptor/blob/master/Misc/cairo_drawings/mesh_maker1.c<br>
<br>
For just rotating in cairo you could put the cairo transform in the quaternion rotation function. <br>
<br>
If you are rotating points manually you will want to get the rotation matrix back so that you can use it. The perspective program manually rotates some cube points. After rotation the points could be adjusted for perspective(in this case) or maybe even with a stress matrix.<br>
<br>
https://gitlab.com/cecashon/OrderedSetVelociRaptor/blob/master/Misc/cairo_drawings/perspective1.c<br>
<br>
Sometimes I get some line fragments here that extend a little too far but am unsure where they come from in the perspective program.<br>
<br>
In the cairo_drawings folder there is also some boid test code to draw animated 3d objects with cairo(boids2.c and boids3.c).<br>
<br>
Another drawing thought. When drawing in 3d you can use painters algorithm to draw from back to front. A better option sometimes might be to use the opengl depth testing. <br>
<br>
Eric</font></font>