Código:
struct vec3{
float x;
float y;
float z;
};
typedef float mat[8];
void InitVec3(vec3 *v, int x,int y){
(*v).x = x;
(*v).y = y;
(*v).z = 0;
}
void InitMat3(mat m, float x0, float x1, float x2, float x3, float x4, float x5, float x6, float x7, float x8){
m[0] = x0; m[1] = x1; m[2] = x2;
m[3] = x3; m[4] = x4; m[5] = x5;
m[6] = x6; m[7] = x7; m[8] = x8;
}
void VaciarMat3(mat m){
m[0] = 0; m[1] = 0; m[2] = 0;
m[3] = 0; m[4] = 0; m[5] = 0;
m[6] = 0; m[7] = 0; m[8] = 0;
}
void SubstractVec3(vec3 v, vec3 u, vec3 *vec){
(*vec).x = v.x - u.x; (*vec).y = v.y - u.y; (*vec).z = 0.0;
}
void AddVec3(vec3 v, vec3 u, vec3 *vec){
(*vec).x = v.x + u.x; (*vec).y = v.y + u.y;
}
int ESAT::main(int, char **){
mat matriz;
vec3 vec;
vec3 vec2;
InitVec3(&vec, 12, 10);
InitVec3(&vec2, 10, 5);
AddVec3(vec, vec2, &vec);
InitMat3(matriz,1,1,1,2,2,2,0,0,0);
VaciarMat3(matriz);
ESAT::WindowInit(800, 600);
while (ESAT::WindowIsOpened() && !ESAT::IsSpecialKeyDown(ESAT::kSpecialKey_Escape)){
ESAT::DrawClear(0, 0, 0);
ESAT::DrawSetStrokeColor(255, 255, 255, 255);
ESAT::WindowFrame();
}
ESAT::WindowDestroy();
return 0;
}
float x;
float y;
float z;
};
typedef float mat[8];
void InitVec3(vec3 *v, int x,int y){
(*v).x = x;
(*v).y = y;
(*v).z = 0;
}
void InitMat3(mat m, float x0, float x1, float x2, float x3, float x4, float x5, float x6, float x7, float x8){
m[0] = x0; m[1] = x1; m[2] = x2;
m[3] = x3; m[4] = x4; m[5] = x5;
m[6] = x6; m[7] = x7; m[8] = x8;
}
void VaciarMat3(mat m){
m[0] = 0; m[1] = 0; m[2] = 0;
m[3] = 0; m[4] = 0; m[5] = 0;
m[6] = 0; m[7] = 0; m[8] = 0;
}
void SubstractVec3(vec3 v, vec3 u, vec3 *vec){
(*vec).x = v.x - u.x; (*vec).y = v.y - u.y; (*vec).z = 0.0;
}
void AddVec3(vec3 v, vec3 u, vec3 *vec){
(*vec).x = v.x + u.x; (*vec).y = v.y + u.y;
}
int ESAT::main(int, char **){
mat matriz;
vec3 vec;
vec3 vec2;
InitVec3(&vec, 12, 10);
InitVec3(&vec2, 10, 5);
AddVec3(vec, vec2, &vec);
InitMat3(matriz,1,1,1,2,2,2,0,0,0);
VaciarMat3(matriz);
ESAT::WindowInit(800, 600);
while (ESAT::WindowIsOpened() && !ESAT::IsSpecialKeyDown(ESAT::kSpecialKey_Escape)){
ESAT::DrawClear(0, 0, 0);
ESAT::DrawSetStrokeColor(255, 255, 255, 255);
ESAT::WindowFrame();
}
ESAT::WindowDestroy();
return 0;
}