ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:17.34KB ,
资源ID:19084609      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19084609.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机图形学Bresenham完整算法画直线椭圆和圆Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机图形学Bresenham完整算法画直线椭圆和圆Word下载.docx

1、 glEnd();/绘制一个点,这里用一个正方形表示一个点void putpixel(GLsizei x, GLsizei y) glRectf(10*x,10*y,10*x+10,10*y+10);/DDA画线算法 / / / / / / void DDACreateLine(GLsizei x0, GLsizei y0, GLsizei x1, GLsizei y1, GLsizei num) /设置颜色 glColor3f(1.0f,0.0f,0.0f); /对画线动画进行控制 if(num = 1) printf(DDA画线算法:各点坐标n); else if(num=0) retur

2、n; /画线算法的实现 GLsizei dx,dy,epsl,k; GLfloat x,y,xIncre,yIncre; dx = x1-x0; dy = y1-y0; x = x0; y = y0; if(abs(dx) abs(dy) epsl = abs(dx); else epsl = abs(dy); xIncre = (float)dx / epsl ; yIncre = (float)dy / epsl ; for(k = 0; k=num-1) printf(x=%f , y=%f,取整后 x=%d,y=%dn, x, y, (int)(x+0.5),(int)(y+0.5);

3、 break; x += xIncre; y += yIncre; if(x = 25 | y = 25) break; /中点Bresenham算法画直线(0=kx1) x=x1;x1=x0;x0=x; y=y1;y1=y0;y0=y; x=x0;y=y0; dx=x1-x0;dy=y1-y0; k=dy/dx; if(k=0&k=1) d=dx-2*dy; UpIncre=2*dx-2*dy; DownIncre=-2*dy; while(xx=%d,y=%dn, x, y); p+; x+; if(d0) y+; d+=UpIncre; else d+=DownIncre;1) d=dy

4、-2*dx; UpIncre=2*dy-2*dx; DownIncre=-2*dx; while(y=y1) break; y+; if(d x+; else d+=DownIncre; if(k=-1) UpIncre=-2*dy; DownIncre=-2*dx-2*dy; if(d y-; d+=DownIncre; else d+=UpIncre;-1) d=-dy-2*dx; UpIncre=-2*dx-2*dy; while(y y-;/改进的Bresenham算法画直线(0 e=e-2*dx;1) e=-dy; e=e+2*dx;0) e=e-2*dy; if(e printf(

5、x=%d,y=%d,d=%dn, x, y,d); break;0)d+=2*x+3; else d+=2*(x-y)+5; y-;void Bresenham2Circle(GLsizei a,GLsizei b,GLsizei num) if(num=1)Bresenham算法画椭圆: GLsizei x,y; float d1,d2;y=b; d1=b*b+a*a*(-b+0.5);putpixel(x,-y); while(b*b*(x+1)x=%d,y=%d,d1=%dn, x, y,d1); if(d1=0) d1+=b*b*(2*x+3); x+; d1+=b*b*(2*x+3)

6、+a*a*(-2*y+2);y-; /while上半部分 d2=b*b*(x+0.5)*(x+0.5)+a*a*(y-1)*(y-1)-a*a*b*b;x=%d,y=%d,d2=%dn, x, y,d2); if(d2 d2+=b*b*(2*x+2)+a*a*(-2*y+3); d2+=a*a*(-2*y+3);/初始化窗口void Initial(void) / 设置窗口颜色为蓝色 glClearColor(0.0f, 0.0f, 1.0f, 1.0f);/ 窗口大小改变时调用的登记函数void ChangeSize(GLsizei w, GLsizei h) if(h = 0) h = 1

7、; / 设置视区尺寸 glViewport(0,0, w, h); / 重置坐标系统 glMatrixMode(GL_PROJECTION); glLoadIdentity(); / 建立修剪空间的范围 if (w = h) glOrtho (-250.0f, 250.0f, -250.0f, 250.0f*h/w, 1.0, -1.0); else glOrtho (-250.0f, 250.0f*w/h, -250.0f, 250.0f, 1.0, -1.0);/ 在窗口中绘制图形void ReDraw(void) /用当前背景色填充窗口 glClear(GL_COLOR_BUFFER_B

8、IT); /画出坐标线 DrawCordinateLine(); switch(m_DrawMode) case 1: DDACreateLine(0,0,20,15,m_PointNumber); case 2: BresenhamLine(0,0,-20,15,m_PointNumber); case 3: Bresenham2Line(1,1,8,6,m_PointNumber); case 4: BresenhamCircle(0,0,20,m_PointNumber); case 5: Bresenham2Circle(10,8,m_PointNumber); default: gl

9、Flush();/设置时间回调函数void TimerFunc(int value) if(m_PointNumber = 0) value = 1; m_PointNumber = value; glutPostRedisplay(); glutTimerFunc(500, TimerFunc, value+1);/设置键盘回调函数void Keyboard(unsigned char key, int x, int y) if (key = 1) m_DrawMode = 1;2) m_DrawMode = 2;3) m_DrawMode = 3;4) m_DrawMode = 4;5)

10、m_DrawMode = 5; m_PointNumber = 0;/void main(void)int main(int argc, char* argv) glutInit(&argc, argv); /初始化GLUT库OpenGL窗口的显示模式 glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(600,600); glutInitWindowPosition(100,100); glutCreateWindow(基本图元绘制程序); glutDisplayFunc(ReDraw); glutReshapeFunc(ChangeSize); glutKeyboardFunc(Keyboard);/键盘响应回调函数 glutTimerFunc(500, TimerFunc, 1); / 窗口初始化 Initial(); glutMainLoop(); /启动事件处理循环 return 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1