資源簡介
計算機圖形學實驗(哈爾濱工程大學)
共有4次上機實驗的源代碼
用c++編寫的
共有4次上機實驗的源代碼
用c++編寫的
代碼片段和文件信息
#include
#include
#include
#define?MAXSF???4
#define?MAXP????3
#define?MAXVT???4
#define?STARTX??200
#define?STARTY??200
#define?DOWN????20480
#define?RIGHT???19712
#define?LEFT????19200
#define?ESC?????283
typedef?struct?Node
{
????float?x;
????float?y;
????float?z;
}Ver;
Ver?surface[MAXSF][MAXP]vertex[MAXVT];
int?hideFlag[MAXSF]surColor[MAXSF]={BLUEYELLOWREDWHITE};
void?init();/*初始化圖形設備*/
void?setVert();?/*設置頂點*/
void?setSuf();?/*設置面*/
int??isHide(Ver?ver[3]);?/*判斷前后面*/
void?switchXYZ(int?xyz);?/*繞X、Y、Z旋轉,轉換頂點坐標*/
void?delBlock();/*消除遮擋的面*/
void?paint();/*顯示圖形*/
void?end();/*結束程序*/
void?main()
{
????int?ikeyxyz;
????init();
????setVert();
????do
????{
????????setSuf();
????????for(i?=?0;?i?????????????hideFlag[i]=isHide(surface[i]);
????????delBlock();
????????paint();
????????key=bioskey(0);
????????xyz=0;
????????switch(key)
????????{
????????????case?DOWN:
????????????????xyz?=?3;
????????????????break;
????????????case?LEFT:
????????????????xyz?=?2;
????????????????break;
????????????case?RIGHT:
????????????????xyz?=?1;
????????????????break;
????????????case?ESC:
????????????????end();
????????????default:
????????????????break;
????????}
????????if(xyz)
????????{
????????????cleardevice();
????????????switchXYZ(xyz);
????????}
????}while(1);
}
void?init()
{
????int?drivermode;
????driver=DETECT;
????mode=0;
????initgraph(&driver&mode““);
????setbkcolor(GREEN);
}
void?setVert()
{
????vertex[0].x=80vertex[0].y=20vertex[0].z=20;
????vertex[1].x=80vertex[1].y=80vertex[1].z=20;
????vertex[2].x=20vertex[2].y=80vertex[2].z=20;
????vertex[3].x=40vertex[3].y=60vertex[3].z=80;
}
void?setSuf()?/*是否是這里的問題?*//*必須保證都是逆時針*/
{
????surface[0][0]=vertex[0]surface[0][1]=vertex[2]surface[0][2]=vertex[1];
????surface[1][0]=vertex[1]surface[1][1]=vertex[2]surface[1][2]=vertex[3];
????surface[2][0]=vertex[0]surface[2][1]=vertex[3]surface[2][2]=vertex[2];
????surface[3][0]=vertex[0]surface[3][1]=vertex[1]surface[3][2]=vertex[3];
}
int?isHide(Ver?ver[3])
{
????Ver?NPQ;
????Ver?V={001};
????float?flag;
????P.x?=?ver[1].x?-?ver[0].x;
????P.y?=?ver[1].y?-?ver[0].y;
????P.z?=?ver[1].z?-?ver[0].z;
????Q.x?=?ver[2].x?-?ver[1].x;
????Q.y?=?ver[2].y?-?ver[1].y;
????Q.z?=?ver[2].z?-?ver[1].z;
????N.x?=?P.y?*?Q.z?-?Q.y?*?P.z;
????N.y?=?P.z?*?Q.x?-?Q.z?*?P.x;
????N.z?=?P.x?*?Q.y?-?Q.x?*?P.y;
????flag?=?N.x?*?V.x?+?N.y?*?V.y?+?N.z?*?V.z;
????if(flag?>?0)
????????return?0;
????return?1;
}
void?switchXYZ(int?xyz)
{
????Ver?temp;
????int?i;
????for(i?=?0;?i?????{
????????if(xyz?==?1)
????????{
????????????temp.x?=?vertex[i].x;
????????????temp.y?=?-vertex[i].z;
????????????temp.z?=?vertex[i].y;
????????}
????????else?if(xyz?==?2)
????????{
????????????temp.x?=?vertex[i].z;
????????????temp.y?=?vertex[i].y;
????????????temp.z?=?-vertex
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1809??2007-09-28?08:19??計算機圖形實驗\1\DUAN.C
?????文件???????5835??2000-08-26?10:33??計算機圖形實驗\1\HOMEWORK.C
?????文件???????1305??2007-10-12?08:31??計算機圖形實驗\3\BSPLINE.C
?????文件???????1217??2007-10-12?08:19??計算機圖形實驗\3\BEZIER.C
?????文件???????2803??2007-09-28?06:49??計算機圖形實驗\上機實驗2\task2.c
?????文件???????3327??2007-09-28?06:49??計算機圖形實驗\上機實驗2\task218.c
?????文件???????1610??2007-09-28?06:50??計算機圖形實驗\上機實驗2\task237.c
?????文件???????4571??2007-11-01?19:04??計算機圖形實驗\4\homework411.c
?????目錄??????????0??2007-11-03?15:18??計算機圖形實驗\1
?????目錄??????????0??2007-11-03?15:19??計算機圖形實驗\3
?????目錄??????????0??2007-11-03?15:19??計算機圖形實驗\上機實驗2
?????目錄??????????0??2007-11-03?15:28??計算機圖形實驗\4
?????目錄??????????0??2009-02-15?18:58??計算機圖形實驗
?????文件???????1809??2007-09-28?08:19??計算機圖形實驗\計算機圖形實驗\上機實驗1\DUAN.C
?????文件???????5835??2000-08-26?10:33??計算機圖形實驗\計算機圖形實驗\上機實驗1\HOMEWORK.C
?????文件???????2803??2007-09-28?06:49??計算機圖形實驗\計算機圖形實驗\上機實驗2\task2.c
?????文件???????3327??2007-09-28?06:49??計算機圖形實驗\計算機圖形實驗\上機實驗2\task218.c
?????文件???????1610??2007-09-28?06:50??計算機圖形實驗\計算機圖形實驗\上機實驗2\task237.c
?????文件???????1217??2007-10-12?08:19??計算機圖形實驗\計算機圖形實驗\上機實驗3\BEZIER.C
?????文件???????1305??2007-10-12?08:31??計算機圖形實驗\計算機圖形實驗\上機實驗3\BSPLINE.C
?????文件???????4571??2007-11-01?19:04??計算機圖形實驗\計算機圖形實驗\上機實驗4\homework411.c
?????目錄??????????0??2007-11-03?15:18??計算機圖形實驗\計算機圖形實驗\上機實驗1
?????目錄??????????0??2007-11-03?15:19??計算機圖形實驗\計算機圖形實驗\上機實驗2
?????目錄??????????0??2007-11-03?15:19??計算機圖形實驗\計算機圖形實驗\上機實驗3
?????目錄??????????0??2007-11-03?15:28??計算機圖形實驗\計算機圖形實驗\上機實驗4
?????目錄??????????0??2009-02-15?18:59??計算機圖形實驗\計算機圖形實驗
-----------?---------??----------?-----??----
????????????????44954????????????????????26
- 上一篇:匯編語言課程設計案例精編
- 下一篇:簡單計算器的實現(數據結構 修正版)
評論
共有 條評論