📄 our_module.c
字号:
{ 1, -1, -1 },// 7
};
char triangle[][3]={
{ 0, 1, 2 },// 0
{ 0, 2, 3 },// 1
{ 4, 7, 6 },// 2
{ 4, 6, 5 },// 3
{ 1, 5, 6 },// 4
{ 1, 6, 2 },// 5
{ 0, 4, 5 },// 6
{ 0, 5, 1 },// 7
{ 0, 3, 7 },// 8
{ 0, 7, 4 },// 9
{ 2, 6, 7 },// a
{ 2, 7, 3 },// b
};
CLR clr[]={0xff0000,0x00ff00,0x0000ff,0xffff00,0xff00ff,0x00ffff};
for(i=0;i<8;i++)
{
point_org[i].MM.x= CUBE_1R*point[i][0];
point_org[i].MM.y= CUBE_1R*point[i][1];
point_org[i].MM.z= CUBE_1R*point[i][2];
}
for(i=0;i<12;i++)
{
triangle_work[i].p1=triangle[i][0];
triangle_work[i].p2=triangle[i][1];
triangle_work[i].p3=triangle[i][2];
obj->clor[i]=clr[i>>1];
}
}
//FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
//FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
void OUR_creat_three(OUR_3D_OBJ_PTR obj)
{
#define CUBE_R1 400
#define CUBE_L 3500
int i;
//int U_MAX;
//int V_MAX;
//U_MAX = obj->bmp_info->width;
//V_MAX = obj->bmp_info->height;
FIX_POINT3D_PTR point_org=obj->pPoints;
OUR_3D_TRAG_PTR triangle_work=obj->pTriangle;
int point[][3]={
{ CUBE_L/2, CUBE_R1*0.866, CUBE_R1/2 },// 0 //sin60=0.866
{ CUBE_L/2, -CUBE_R1*0.866, CUBE_R1/2 },// 0 //sin60=0.866
{ CUBE_L/2, 0, -CUBE_R1 },// 0 //sin60=0.866
{ -CUBE_L/2, CUBE_R1*0.866, CUBE_R1/2 },// 0 //sin60=0.866
{ -CUBE_L/2, -CUBE_R1*0.866, CUBE_R1/2 },// 0 //sin60=0.866
{ -CUBE_L/2, 0, -CUBE_R1 },// 0 //sin60=0.866
};
char triangle[][3]={
{ 0, 2, 5 },// 0
{ 0, 5, 3 },// 1
{ 2, 1, 4 },// 0
{ 2, 4, 5 },// 1
{ 1, 0, 3 },// 0
{ 1, 3, 4 },// 1
};
#define U_MAX_3 63
#define V_MAX_3 255
int uv[][3]={
{UV_BUILD(1,1), UV_BUILD(U_MAX_3,1), UV_BUILD(U_MAX_3,V_MAX_3) },
{UV_BUILD(1,1), UV_BUILD(U_MAX_3,V_MAX_3), UV_BUILD(1,V_MAX_3) },
//{UV_BUILD(U_MAX_3,V_MAX_3), UV_BUILD(U_MAX_3,10), UV_BUILD(10,10)},
//{UV_BUILD(10,V_MAX_3), UV_BUILD(U_MAX_3,V_MAX_3),UV_BUILD(10,10)},
};
CLR clr[]={0xff0000,0x00ff00,0x0000ff,0xffff00,0xff00ff,0x00ffff};
for(i=0;i<6;i++)
{
point_org[i].MM.x= point[i][0];
point_org[i].MM.y= point[i][1];
point_org[i].MM.z= point[i][2];
if(MATERIAL_point_1P==(obj->material &MATERIAL_MASK))
{
obj->clor[i]=clr[i];
}
}
for(i=0;i<6;i++)
{
triangle_work[i].p1=triangle[i][0];
triangle_work[i].p2=triangle[i][1];
triangle_work[i].p3=triangle[i][2];
if(MATERIAL_Triangle_T==(obj->material &MATERIAL_MASK))
{
obj->clor[i]=clr[i>>1];
}
else if(MATERIAL_bmp==(obj->material &MATERIAL_MASK))
{
triangle_work[i].uv1=uv[i%2][0];
triangle_work[i].uv2=uv[i%2][1];
triangle_work[i].uv3=uv[i%2][2];
triangle_work[i].bmp_index=i/2;
}
}
}
//FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
//FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
void OUR_creat_square(OUR_3D_OBJ_PTR obj)
{
#define CUBE_R 1000
int i;
//int U_MAX;
//int V_MAX;
//U_MAX = obj->bmp_info->width;
//V_MAX = obj->bmp_info->height;
FIX_POINT3D_PTR point_org=obj->pPoints;
OUR_3D_TRAG_PTR triangle_work=obj->pTriangle;
int point[][3]={
{ 0, -1, 0 },// 0
{ 0, -1, 2 },// 1
{ 0, 1, 2 },// 2
{ 0, 1, 0 },// 3
};
char triangle[][3]={
{ 0, 1, 2 },// 0
{ 0, 2, 3 },// 1
{ 2, 1, 0 },// 0
{ 3, 2, 0 },// 1
};
int uv[][3]={
{UV_BUILD(1,1), UV_BUILD(U_MAX,1), UV_BUILD(U_MAX,V_MAX) },
{UV_BUILD(1,1), UV_BUILD(U_MAX,V_MAX), UV_BUILD(1,V_MAX) },
{UV_BUILD(U_MAX,V_MAX), UV_BUILD(U_MAX,1), UV_BUILD(1,1)},
{UV_BUILD(1,V_MAX), UV_BUILD(U_MAX,V_MAX),UV_BUILD(1,1)},
};
for(i=0;i<4;i++)
{
point_org[i].MM.y= CUBE_R*point[i][0];
point_org[i].MM.x= CUBE_R*point[i][1];
point_org[i].MM.z= CUBE_R*point[i][2];
}
for(i=0;i<4;i++)
{
triangle_work[i].p1=triangle[i][0];
triangle_work[i].p2=triangle[i][1];
triangle_work[i].p3=triangle[i][2];
triangle_work[i].uv1=uv[i][0];
triangle_work[i].uv2=uv[i][1];
triangle_work[i].uv3=uv[i][2];
}
}
//FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
//FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
void OUR_creat_mg(OUR_3D_OBJ_PTR obj,int r)
{
//#define CUBE_R 300
int i;
//int U_MAX;
//int V_MAX;
//U_MAX = obj->bmp_info->width;
//V_MAX = obj->bmp_info->height;
FIX_POINT3D_PTR point_org=obj->pPoints;
OUR_3D_TRAG_PTR triangle_work=obj->pTriangle;
int point[][2]={
{ 2, 0 },// 1
{ 2, 1 },// 2
{ 1, 1 },// 3
{ 1, 2 },// 4
{ 2, 2 },// 5
{ 2, 3 },// 6
{ 1, 3 },// 7
{ 1, 4 },// 8
{ 2, 4 },// 9
{ 2, 5 },// 10
{ 4, 5 },// 11
{ 4, 3 },// 12
{ 5, 3 },// 13
{ 5, 2 },// 14
{ 4, 2 },// 15
{ 4, 0 },// 0
};
char triangle[][3]={
{ 0,1, 16 },// 0
{ 16,1, 17 },// 1
};
//#define U_MAX 128
//#define V_MAX 128
int uv[][3]={
{UV_BUILD(0,0), UV_BUILD(U_MAX,0), UV_BUILD(U_MAX,V_MAX) },
{UV_BUILD(0,0), UV_BUILD(U_MAX,V_MAX), UV_BUILD(0,V_MAX) },
{UV_BUILD(U_MAX,V_MAX), UV_BUILD(U_MAX,0), UV_BUILD(0,0)},
{UV_BUILD(0,V_MAX), UV_BUILD(U_MAX,V_MAX),UV_BUILD(0,0)},
};
for(i=0;i<obj->point_num/2;i++)
{
point_org[i].MM.x= CUBE_R*(point[i][0])-CUBE_R*3;
point_org[i].MM.y= CUBE_R*(point[i][1])-CUBE_R*3;
point_org[i].MM.z= -200;
}
for(;i<obj->point_num;i++)
{
point_org[i].MM.x= CUBE_R*(point[i-obj->point_num/2][0]-3);
point_org[i].MM.y= CUBE_R*(point[i-obj->point_num/2][1]-3);
point_org[i].MM.z= 200;
}
triangle_work[0].p1=triangle[0][0];
triangle_work[0].p2=triangle[0][1];
triangle_work[0].p3=triangle[0][2];
triangle_work[1].p1=triangle[1][0];
triangle_work[1].p2=triangle[1][1];
triangle_work[1].p3=triangle[1][2];
for(i=2;i<obj->triangle_num;i++)
{
triangle_work[i].p1=triangle_work[i-2].p1+1;
triangle_work[i].p2=triangle_work[i-2].p2+1;
triangle_work[i].p3=triangle_work[i-2].p3+1;
//triangle_work[i].uv1=uv[i][0];
//triangle_work[i].uv2=uv[i][1];
//triangle_work[i].uv3=uv[i][2];
}
}
//FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
//FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
void OUR_creat_square_mg(OUR_3D_OBJ_PTR obj,int r)
{
//#define CUBE_R 1000
int i;
//int U_MAX;
//int V_MAX;
//U_MAX = obj->bmp_info->width;
//V_MAX = obj->bmp_info->height;
FIX_POINT3D_PTR point_org=obj->pPoints;
OUR_3D_TRAG_PTR triangle_work=obj->pTriangle;
int point[][3]={
{ 0, -1, 0 },// 0
{ 2, -1, 0 },// 1
{ 2, 1, 0 },// 2
{ 0, 1, 0 },// 3
};
char triangle[][3]={
{ 0, 1, 2 },// 0
{ 0, 2, 3 },// 1
};
//#define U_MAX 128
//#define V_MAX 128
int uv[][3]={
{UV_BUILD(0,0), UV_BUILD(U_MAX,0), UV_BUILD(U_MAX,V_MAX) },
{UV_BUILD(0,0), UV_BUILD(U_MAX,V_MAX), UV_BUILD(0,V_MAX) },
{UV_BUILD(U_MAX,V_MAX), UV_BUILD(U_MAX,0), UV_BUILD(0,0)},
{UV_BUILD(0,V_MAX), UV_BUILD(U_MAX,V_MAX),UV_BUILD(0,0)},
};
for(i=0;i<4;i++)//obj->point_num
{
point_org[i].MM.y= CUBE_R*point[i][0];
point_org[i].MM.x= CUBE_R*point[i][1];
point_org[i].MM.z= CUBE_R*point[i][2];
}
for(i=0;i<2;i++)//obj->triangle_num
{
triangle_work[i].p1=triangle[i][0];
triangle_work[i].p2=triangle[i][1];
triangle_work[i].p3=triangle[i][2];
// triangle_work[i].uv1=uv[i][0];
// triangle_work[i].uv2=uv[i][1];
// triangle_work[i].uv3=uv[i][2];
}
}
void OUR_creat_M(OUR_3D_OBJ_PTR obj,int r)
{
//#define CUBE_R 300
int i;
//int U_MAX;
//int V_MAX;
//U_MAX = obj->bmp_info->width;
//V_MAX = obj->bmp_info->height;
FIX_POINT3D_PTR point_org=obj->pPoints;
OUR_3D_TRAG_PTR triangle_work=obj->pTriangle;
int point[][2]={
{ 0, 0},// 0
{ 2, 3},// 1
{ 6, 3},// 2
{ 6, -3},// 3
{ 3, -3},// 3
{ 3, 2},// 0
{ 1, -3},// 1
{ -1, -3},// 1
{ -3, 2},// 0
{ -3, -3},// 3
{ -6, -3},// 3
{ -6, 3},// 2
{ -2, 3},// 1
{ -0, 0},// 0
};
char triangle[][3]={
{ 1,0, 14 },// 0
{ 1,14, 15 },// 1
};
char triangle_2[][3]={
{ 0, 1, 5 },// 0
{ 1, 2, 5 },// 1
{ 2, 3, 4 },// 0
{ 2, 4, 5 },// 1
{ 6, 0, 5 },// 1
{ 0, 6, 7 },// 0
{ 0, 7, 8 },// 1
{ 12, 0, 8 },// 1
{ 11, 12, 8 },// 1
{ 9, 11, 8 },// 1
{ 9, 10, 11 },// 1
};
//#define U_MAX 128
//#define V_MAX 128
int uv[][3]={
{UV_BUILD(0,0), UV_BUILD(U_MAX,0), UV_BUILD(U_MAX,V_MAX) },
{UV_BUILD(0,0), UV_BUILD(U_MAX,V_MAX), UV_BUILD(0,V_MAX) },
{UV_BUILD(U_MAX,V_MAX), UV_BUILD(U_MAX,0), UV_BUILD(0,0)},
{UV_BUILD(0,V_MAX), UV_BUILD(U_MAX,V_MAX),UV_BUILD(0,0)},
};
for(i=0;i<obj->point_num/2;i++)
{
point_org[i].MM.x= CUBE_R*(point[i][0]);
point_org[i].MM.y= CUBE_R*(point[i][1]);
point_org[i].MM.z= -200;
}
for(;i<obj->point_num;i++)
{
point_org[i].MM.x= CUBE_R*(point[i-obj->point_num/2][0]);
point_org[i].MM.y= CUBE_R*(point[i-obj->point_num/2][1]);
point_org[i].MM.z= 200;
}
triangle_work[0].p1=triangle[0][0];
triangle_work[0].p2=triangle[0][1];
triangle_work[0].p3=triangle[0][2];
triangle_work[1].p1=triangle[1][0];
triangle_work[1].p2=triangle[1][1];
triangle_work[1].p3=triangle[1][2];
for(i=2;i<28;i++)
{
triangle_work[i].p1=triangle_work[i-2].p1+1;
triangle_work[i].p2=triangle_work[i-2].p2+1;
triangle_work[i].p3=triangle_work[i-2].p3+1;
//triangle_work[i].uv1=uv[i][0];
//triangle_work[i].uv2=uv[i][1];
//triangle_work[i].uv3=uv[i][2];
}
for(i=0;i<11;i++)
{
triangle_work[i+28].p1=triangle_2[i][0];
triangle_work[i+28].p2=triangle_2[i][1];
triangle_work[i+28].p3=triangle_2[i][2];
//triangle_work[i].uv1=uv[i][0];
//triangle_work[i].uv2=uv[i][1];
//triangle_work[i].uv3=uv[i][2];
}
for(i=0;i<11;i++)
{
triangle_work[i+28+11].p1=triangle_2[i][0]+14;
triangle_work[i+28+11].p2=triangle_2[i][2]+14;
triangle_work[i+28+11].p3=triangle_2[i][1]+14;
//triangle_work[i].uv1=uv[i][0];
//triangle_work[i].uv2=uv[i][1];
//triangle_work[i].uv3=uv[i][2];
}
}
//FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
//FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -