云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 计算机图形学实验C++代码

计算机图形学实验C++代码

  • 62 次阅读
  • 3 次下载
  • 2025/5/5 3:11:59

}

}

p=yCenter+a*(x+1-xCenter)*(x+1-xCenter)+b*(x+1-xCenter)-y-0.5;

px=x-xCenter; py=y-yCenter;

ellipsePlotPoints(xCenter,yCenter,px,py);

}while(px

if(p<0) { } else{ }

px=x-xCenter; py=y-yCenter;

ellipsePlotPoints(xCenter,yCenter,px,py);

x=x; y=y+1;

p=yCenter+a*(x+0.5-xCenter)*(x+0.5-xCenter)+b*(x+0.5-xCenter)-y-1; x=x-1; y=y+1;

p=yCenter+a*(x+0.5-xCenter)*(x+0.5-xCenter)+b*(x+0.5-xCenter)-y-1;

void ellipsePlotPoints(int xCenter,int yCenter,int x,int y) { }

void display() { }

void myinit() { }

void main(int argc,char **argv ) {

5

glClearColor(0.8,1.0,1.0,1.0); glColor3f(0.0,0.0,1.0); glPointSize(1.0);

glMatrixMode(GL_PROJECTION); glLoadIdentity();

gluOrtho2D(0.0,300.0,0.0,300.0); glClear(GL_COLOR_BUFFER_BIT); ellipseMidpoint(150,150,1,0); glFlush();

setPixel(xCenter+x,yCenter+y); setPixel(xCenter-x,yCenter+y);

}

glutInit(&argc,argv);

glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowSize(500,500);

glutInitWindowPosition(200.0,200.0); glutCreateWindow(\); glutDisplayFunc(display); myinit(); glutMainLoop();

四、 基本图元输出

#include #include #include

void Polygon(int*p1,int*p2,int*p3,int*p4,int*p5,int*p6) { }

void Triangles(int*p1,int*p2,int*p3,int*p4,int*p5,int*p6) { }

void Trianglefan(int*p1,int*p2,int*p3,int*p4,int*p5,int*p6) {

glBegin(GL_TRIANGLE_FAN); glVertex2iv(p1); glVertex2iv(p2); glVertex2iv(p3); glVertex2iv(p4); glVertex2iv(p5); glVertex2iv(p6); glEnd();

6

glBegin(GL_TRIANGLES); glVertex2iv(p1); glVertex2iv(p2); glVertex2iv(p6); glVertex2iv(p3); glVertex2iv(p4); glVertex2iv(p5); glEnd();

glBegin(GL_POLYGON); glVertex2iv(p1); glVertex2iv(p2); glVertex2iv(p3); glVertex2iv(p4); glVertex2iv(p5); glVertex2iv(p6); glEnd();

}

void Trianglestrip(int*p1,int*p2,int*p3,int*p4,int*p5,int*p6) { glBegin(GL_TRIANGLE_STRIP); glVertex2iv(p1); glVertex2iv(p2); glVertex2iv(p6); glVertex2iv(p3); glVertex2iv(p5); glVertex2iv(p4); glEnd();

}

void glRect_s(GLint a,GLint b,GLint c,GLint d) { glRecti(a,b,c,d);

}

void display() { int p1[]={60,170}; int p2[]={100,100}; int p3[]={180,100}; int p4[]={220,170}; int p5[]={180,240}; int p6[]={100,240}; int p7[]={60,100};

glClear(GL_COLOR_BUFFER_BIT); //Triangles(p1,p2,p3,p4,p5,p6); //Polygon(p1,p2,p3,p4,p5,p6); //glRect_s(160,30,10,100); Trianglestrip(p1,p2,p3,p4,p5,p6); //Trianglefan(p1,p2,p3,p4,p5,p6); glFlush(); }

void myinit() { glClearColor(0.8,1.0,1.0,1.0); glColor3f(0.0,0.0,1.0); glPointSize(1.0);

glMatrixMode(GL_PROJECTION); glLoadIdentity();

gluOrtho2D(0.0,300.0,0.0,300.0); }

void main(int argc,char **argv ) { glutInit(&argc,argv);

glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);

7

}

glutInitWindowSize(500,500);

glutInitWindowPosition(300.0,300.0); glutCreateWindow(\); glutDisplayFunc(display); myinit(); glutMainLoop();

五、 区域填充

#include \#include \

const int POINTNUM=7; //多边形点数. //定义结构体用于活性边表AET和新边表NET typedef struct XET {

float x; float dx,ymax; XET* next;

}AET,NET;

//定义点结构体point struct point {

float x; float y;

}polypoint[POINTNUM]={250,50,350,150,50,40,250,20,200,30,100,100,10,300};//多边形顶点 void PolyScan() {

//初始化NET表 NET *pNET[1024]; for(i=0;i<=MaxY;i++) { }

glClear(GL_COLOR_BUFFER_BIT); //赋值的窗口显示.

8

pNET[i]=new NET; pNET[i]->next=NULL; //初始化AET表 AET *pAET=new AET; pAET->next=NULL;

//计算最高点的y坐标(扫描到此结束) int MaxY=0; int i;

for(i=0;i

if(polypoint[i].y>MaxY)

MaxY=polypoint[i].y;

搜索更多关于: 计算机图形学实验C++代码 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

} } p=yCenter+a*(x+1-xCenter)*(x+1-xCenter)+b*(x+1-xCenter)-y-0.5; px=x-xCenter; py=y-yCenter; ellipsePlotPoints(xCenter,yCenter,px,py); }while(px

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com