资源简介
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参考手册
- 栅栏填充算法源码(VC)
- Qt Creator opengl实现四元数鼠标控制轨迹
- OpenGL文档,api大全,可直接查询函数
- opengl轮廓字体源代码
- MFC读三维模型obj文件
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- c MFC 画多边形
- 基于OPENGL的光线跟踪源代码368758
- VC 实现三维旋转(源码)
- 自编用openGL实现3D分形树,分形山
- OpenGL球形贴图自旋程序
- OpenGL导入贴图的Texture类
- 计算机图形学(openGL)代码
- 图形学集成程序dda、中点算法、多边
- 用OpenGL开发的机械臂运动仿真程序(
- OpenGL-3D坦克模拟
- OPENGL实现世界上最小的3D游戏
- VS2012OpenGL配置所需要的全部libdllh文件
- 基于OpenGL的仿蝗虫机器人三维动态仿
- 图形学 - OpenGL实现3种三维茶壶显示源
- opengl程序-会跳舞的骷髅
- opengl实现三维网格光顺Laplacian算法
- opengl——爆炸
- OpenGL三维地形建模
- opengl游戏编程徐明亮版(含源码)
- 用OPENGL画的一个简单的直升飞机
- opengl完美天空盒
- 3D绘图程序设计:使用Direct3D 10/9和Ope
评论
共有 条评论