资源简介
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计算热应力的详细过程
相关资源
- OpenGL鼠标点选平移物体
- 基于opengl es 的显示gif的
- OpenGL编程指南(第八版)中文高清晰
- 简单多边形的屋脊线计算算法
- OpenGL精美房屋,落雪其上
- OpenGL光照,多种情况下的建立
- vlc opengl播放视频
- 点在多边形中判断程序IDL版
- Opengl写的3d人物模型
- OPENGL学习 3D小雪人
- opengl动态云彩的模拟
- nvidia-opengl-rdp 英伟达显卡 rdp 远程桌面
- OpenGL模型视图矩阵演示
- 基于VC_的OpenGL三维动画仿真及场景漫
- OpenGL仿微信视频聊天
- OpenGL预览摄像头
- OpenGl 会走路的机器人
- opengl 做的很漂亮的一棵树,用分形算
- 3ds模型导入opengl,实现旋转平移缩放
- opengl中点画圆法
- opengl编程指南第7版源代码
- 3D酷炫屏幕保护程序OpenGL
- OpenGL文件.zip
- 配置OpenGL以及glaux所需资源.h.dll
- luweiqi素材
- VS2017&OpenGL;环境搭建
- 计算机图形学,内含DDA画直线,画圆
- OpenGL 顶点数组+拾取
- openGL配置资源文件,含32/64位
- GLPrint_demo
评论
共有 条评论