資源簡介
OpenGL實現多邊形掃描轉換的掃描線算法,帶動畫效果
實驗作業,LAB3.
繪制的是五邊形。

代碼片段和文件信息
//?OGL1.cpp?:?Defines?the?entry?point?for?the?console?application.
//
#include?“stdafx.h“
#include?“windows.h“
#include?“time.h“
#include?“stdlib.h“
#include? //?Header?File?For?The?OpenGL32?Library
#include? //?Header?File?For?The?GLu32?Library
#include? //?Header?File?For?The?Glaux?Library
#include? //?Header?File?For?The?OpenGL32?tools?Library
#define?POINTNUM?5
void?initBian();
int?glColor=1;
int?MaxYMinY=99999;
float?urugub;
//定義結構體用于活性邊表AEL和邊表ET
typedef?struct?XET
{
float?x;
float?dxymax;
XET*?next;
}ETAEL;
????//定義點結構體point
struct?point
{
float?x;
float?y;
}polypoint[POINTNUM];
//polypoint[POINTNUM]={100100550150550400250650100350};
AEL?*pAEL;
ET?*pET[1024];
int?ii;
void?init?(void)
{
????glClearColor?(1.0?1.0?1.0?0.0);??//?Set?display-window?color?to?white.
????glMatrixMode?(GL_PROJECTION);???????//?Set?projection?parameters.
gluOrtho2D?(0.0?200.0?0.0?200.0);
}
void?ProcessColormenu(int?value)
{
switch(value)
{
case?1:
glColor=1;
break;
case?2:
glColor=2;
break;
case?3:
glColor=3;
break;
case?4:
glColor=4;
break;
default:
break;
}
ii=MinY;
glutPostRedisplay();
}
void?initBian()
{
//計算最高點的y坐標(掃描到此結束)
MaxY=0;
int?i;
for(i=0;i {
if(polypoint[i].y>MaxY)
MaxY=polypoint[i].y;
if(polypoint[i].y MinY=polypoint[i].y;
}
//初始化ET表
for(i=0;i<=MaxY;i++)
{
pET[i]=new?ET;
pET[i]->next=NULL;
}
//掃描并建立ET表
for(i=0;i<=MaxY;i++)
{
for(int?j=0;j if(polypoint[j].y==i)
{
if(polypoint[(j-1+POINTNUM)%POINTNUM].y>polypoint[j].y)
{
ET?*p=new?ET;
p->x=polypoint[j].x;
p->ymax=polypoint[(j-1+POINTNUM)%POINTNUM].y;
p->dx=(polypoint[(j-1+POINTNUM)%POINTNUM].x-polypoint[j].x)/(polypoint[(j-1+POINTNUM)%POINTNUM].y-polypoint[j].y);
p->next=pET[i]->next;
pET[i]->next=p;
}
if(polypoint[(j+1+POINTNUM)%POINTNUM].y>polypoint[j].y)
{
ET?*p=new?ET;
p->x=polypoint[j].x;
p->ymax=polypoint[(j+1+POINTNUM)%POINTNUM].y;
p->dx=(polypoint[(j+1+POINTNUM)%POINTNUM].x-polypoint[j].x)/(polypoint[(j+1+POINTNUM)%POINTNUM].y-polypoint[j].y);
p->next=pET[i]->next;
pET[i]->next=p;
}
}
}
}
void?idleSegment(void)
{
if?(ii glutPostRedisplay();
Sleep(50);
}
void?polySegment?(void)
{
????glClear?(GL_COLOR_BUFFER_BIT);??//?Clear?display?window.
if(glColor==1)
????????glColor3f?(1.0?0.0?0.0);??????//?Set?poly?segment?color?to?red.
else?if(glColor==2)
glColor3f?(0.0?1.0?0.0);??????//?Set?poly?segment?color?to?green.
else?if(glColor==3)
glColor3f?(0.0?0.0?1.0);??????//?Set?poly?segment?color?to?blue.
else?if?(glColor==4)
glColor3f(urugub);????????????//?Set?poly?segment?color?to?user?settings.
????ini
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????204855??2013-04-11?15:36??Debug\OGL1.exe
?????文件?????238816??2013-04-11?15:36??Debug\OGL1.ilk
?????文件??????33489??2013-04-11?15:36??Debug\OGL1.obj
?????文件?????203792??2013-04-11?15:06??Debug\OGL1.pch
?????文件?????508928??2013-04-11?15:36??Debug\OGL1.pdb
?????文件???????1937??2013-04-11?15:06??Debug\StdAfx.obj
?????文件??????82944??2013-04-11?15:38??Debug\vc60.idb
?????文件?????126976??2013-04-11?15:36??Debug\vc60.pdb
?????文件????1441792??2013-04-11?13:42??ipch\ogl1-24eb74ed\ogl1-eb07cfe9.ipch
?????文件???????5673??2013-04-11?15:36??OGL1.cpp
?????文件???????4694??2012-02-21?17:58??OGL1.dsp
?????文件????????531??2012-02-21?17:58??OGL1.dsw
?????文件??????33792??2013-04-11?15:40??OGL1.ncb
?????文件??????53760??2013-04-11?15:40??OGL1.opt
?????文件????????242??2013-04-11?15:38??OGL1.plg
?????文件????????873??2013-04-11?14:44??OGL1.sln
?????文件???????6226??2012-02-21?17:58??OGL1.vcproj
?????文件???????7323??2013-04-10?23:47??OGL1.vcxproj
?????文件???????1188??2013-04-10?23:47??OGL1.vcxproj.filters
?????文件????????143??2013-04-10?23:47??OGL1.vcxproj.user
?????文件???????1196??2012-02-21?17:58??ReadMe.txt
?????文件????????291??2012-02-21?17:58??StdAfx.cpp
?????文件????????769??2012-02-21?17:58??StdAfx.h
?????目錄??????????0??2013-04-20?20:58??ipch\ogl1-24eb74ed
?????目錄??????????0??2013-04-20?20:58??Debug
?????目錄??????????0??2013-04-20?20:58??ipch
-----------?---------??----------?-----??----
??????????????2960230????????????????????26
- 上一篇:TCP_Socket.zip
- 下一篇:ANSYS計算熱應力的詳細過程
評論
共有 條評論