计算机图形学——扫描椭圆
来源:互联网 发布:mac电脑性能在线测试 编辑:程序博客网 时间:2024/06/07 12:12
要求:利用中点Bresenham算法扫描转换长半轴a=6, 短半轴b=5的椭圆
#include <iostream>#include "stdio.h"#include <stdlib.h>#include <cmath>#include <gl/glut.h>using namespace std;void CirclePoint(int x,int y){ glColor3f(0.0f,1.0f,0.0f); glPointSize(2.0f); glBegin(GL_POINTS); glVertex2i(x+80,y+80); glVertex2i(-x+80,y+80); glVertex2i(-x+80,-y+80); glVertex2i(x+80,-y+80); glEnd(); glFlush();}void Midpoint(int a,int b){ int x,y; float d1,d2; x=0; y=b; d1=b*b+a*(-b+0.25); CirclePoint(x,y); while(b*b*(x+1)<a*a*(y-0.5)) { if(d1<0) { d1+=b*b*(2*x+3); x++; } else{ d1+=b*b*(2*x+3)+a*a*(-2*y+2); x++; y--; } CirclePoint(x,y); } d2=sqrt(b*(x+5)+a*(y-1)-a*b); while(y>0) { if(d2<0) { d2+=b*b*(2*x+2)+a*a*(-2*y+3); x++; y--; } else{ d2+=a*a*(-2*y+3); y--; } CirclePoint(x,y); }}void Init(void){ glClearColor(1.0f,1.0f,1.0f,0.0f); glMatrixMode(GL_PROJECTION); gluOrtho2D(0.0,200.0,0.0,150.0);}void Display(void){ glClear(GL_COLOR_BUFFER_BIT); Midpoint(60,50);}int main(int argc,char* argv[]){ glutInit(&argc,argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(400,300); glutInitWindowPosition(100,100); glutCreateWindow("Circle"); Init(); glutDisplayFunc(Display); glutMainLoop(); return 0;}
阅读全文
0 0
- 计算机图形学——扫描椭圆
- 计算机图形学——扫描圆
- 计算机图形学基础(2)——画圆,椭圆算法
- 图形学————圆和椭圆的扫描转换
- 计算机图形学-绘制圆、椭圆
- 图形学_椭圆扫描转换_中点椭圆算法
- 【计算机图形学】二、椭圆的生成
- 计算机图形学——直线的三种扫描转换算法
- 计算机图形学——资料
- 计算机图形学—几何变换
- 计算机图形学 - 扫描线种子填充算法
- 计算机图形学 – 椭圆的中点生成算法
- 计算机图形学——GLSL编程
- 计算机图形学入门学习——阴影
- 计算机图形学——图像压缩
- 计算机图形学——表面细分
- 计算机图形学——OpenGL基本使用
- 经典书单 —— 计算机图形学
- 整合Struts2与Spring以及spring的自动装配
- 关于eclipse导出Java项目形成的jar包中没有图片以及图片显示问题
- 三次握手
- Spring源码解析--Spring配置文件解析NamespaceHandler(五)
- jdbc链接数据库
- 计算机图形学——扫描椭圆
- python机器学习包 Windows下 pip安装 scikit-learn numpy scipy
- 《Spark高级数据分析》ChapterII 读书笔记
- 简单的单路缓存 模拟器实现
- 大数据-八
- JAVA登录模块
- python实现MD5加密
- 【Python】一、部分IDE和软件包介绍——《用Python做科学计算》
- 已安装python3,安装pip3 ,再安装tensorflow(for mac)