| 1 |
#include <stdio.h> |
| 2 |
#include <stdlib.h> |
| 3 |
|
| 4 |
#include "matrix.h" |
| 5 |
|
| 6 |
int main(int argc, char *argv[]) |
| 7 |
{ |
| 8 |
Matrix4 foo, a, b; |
| 9 |
Vector4 ipoints[32], opoints[32]; |
| 10 |
int i; |
| 11 |
double theta, step; |
| 12 |
|
| 13 |
matrix4_identity(&foo); |
| 14 |
printf("The Identity Matrix\n"); |
| 15 |
matrix4_print(&foo); |
| 16 |
|
| 17 |
printf("The Translate Matrix\n"); |
| 18 |
matrix4_translate(&foo, 1., 2., 3.); |
| 19 |
matrix4_print(&foo); |
| 20 |
|
| 21 |
printf("The X Rotation Matrix\n"); |
| 22 |
matrix4_rotateXYZ(&foo, 3.1415927, 0, 0); |
| 23 |
matrix4_print(&foo); |
| 24 |
|
| 25 |
|
| 26 |
printf("The Z Rotation Matrix\n"); |
| 27 |
matrix4_rotateXYZ(&foo, 0, 0, 3.1415927); |
| 28 |
matrix4_print(&foo); |
| 29 |
|
| 30 |
printf("The Y Rotation Matrix\n"); |
| 31 |
matrix4_rotateXYZ(&foo, 0, 3.1415927, 0); |
| 32 |
matrix4_print(&foo); |
| 33 |
|
| 34 |
printf("The Un-Rotated Circle\n"); |
| 35 |
theta=0.; |
| 36 |
step=3.1415927*2./32.; |
| 37 |
for(i=0;i<32;i++) |
| 38 |
{ |
| 39 |
ipoints[i].element[0]=0.; |
| 40 |
ipoints[i].element[1]=cos(theta); |
| 41 |
ipoints[i].element[2]=sin(theta); |
| 42 |
ipoints[i].element[3]= 1.; |
| 43 |
fprintf(stdout,"% 0.4f % 0.4f % 0.4f %0.4f\n", ipoints[i].element[0], ipoints[i].element[1],ipoints[i].element[2],ipoints[i].element[3]); |
| 44 |
theta += step; |
| 45 |
} |
| 46 |
|
| 47 |
// matrix4_identity(&foo); |
| 48 |
matrix4_rotateZ(&a, 0.78539816); |
| 49 |
matrix4_rotateX(&b, 0.0); |
| 50 |
matrix4_multiply(&a, &b, &foo); |
| 51 |
printf("The Matrix A\n"); |
| 52 |
matrix4_print(&a); |
| 53 |
printf("The Matrix B\n"); |
| 54 |
matrix4_print(&b); |
| 55 |
printf("The Matrix Result\n"); |
| 56 |
matrix4_print(&foo); |
| 57 |
|
| 58 |
printf("The Rotated Circle\n"); |
| 59 |
for(i=0;i<32;i++) |
| 60 |
{ |
| 61 |
vector_multiply(&foo, &ipoints[i], &opoints[i]); |
| 62 |
fprintf(stdout,"% 0.4f % 0.4f % 0.4f\n", opoints[i].element[0], opoints[i].element[1],opoints[i].element[2]); |
| 63 |
theta += step; |
| 64 |
} |
| 65 |
|
| 66 |
exit(EXIT_SUCCESS); |
| 67 |
|
| 68 |
} |