文档库 最新最全的文档下载
当前位置:文档库 › 计算机图形学 实现圆的生成

计算机图形学 实现圆的生成

计算机图形学 实现圆的生成
计算机图形学 实现圆的生成

集美大学

计算机工程学院实验报告

课程名称计算机图形学教程

实验名称实验三、用高级语言实现圆的生成(圆的扫描转换)

实验类型设计型

姓名学号

日期11月28日地点

成绩教师

一、实验目的:

1、培养学生动手编程解决实际问题的能力。

2、训练学生分析问题和调试程序的能力。

3、锻炼学生撰写科技实验论文的能力

二、实验内容:

组1:

用中点画圆弧方法

1.先画半径为100的1/4圆弧

2.半径依次递减1个单位,再画同一个圆心的1/4圆弧

3.直到半径为50

4.过程要有延时

5.若在递减1个单位的同时,画出7种颜色,如何做?

三、实验要求:

1、问题分析

充分地分析和理解问题本身,弄清要求做什么,用什么算法。

1). 了解圆弧的扫描转换方法;

2). 掌握圆弧的扫描转换方法的原理及其实现方法;

3).掌握圆弧的生成方法;

4).课时:2

2、程序设计

(1)根据所采用的算法,设计数据结构,画出流程图并编程。

(2)最后准备调试程序的数据及测试方案。

3、上机调试

(1)对程序进行编译,纠正程序中可能出现的语法错误。

(2)调试前,先运行一遍程序看看究竟将会发生什么。

(3)如果情况很糟,根据事先设计的测试方案并结合现场情况进行错误跟踪,包括单步调试、设置观察窗输出中间变量值等手段。

4、整理实习报告

实验报告

1、实习内容:采用的算法名称

2、问题描述:包括目标、任务、条件约束描述等。

3、设计:数据结构设计和核心算法设计。主要功能模块的输入,处理(算法框架)和输出。

4、测试范例:测试结果的分析讨论,测试过程中遇到的主要问题及所采用的解决措施。

5、心得:包括程序的改进设想,经验和体会。

6、程序清单:源程序,其中包括变量说明及详细的注释。

四、实验环境:

1.PC,CPU:P4 2.0GHz以上,内存:512M,硬盘:40GB以上; 2.操作系统:Microsoft Windows 2000 /2003/XP;

3.软件:VC或JAVA等。

五、实验内容及完成情况:

采用中点画圆弧方法

#include "graphics.h"

#include "math.h"

#include "stdio.h"

#include "conio.h"

#include "stdlib.h"

void WholeCircle(int xc, int yc, int x, int y, int color)

{

putpixel (xc + x,yc - y,color);

putpixel (xc + y,yc-x,color);

}

void MidpointCircle (int xc, int yc, int x,int y,int d,int r, int color)

{

WholeCircle(xc,yc,x,y,color);

while(x<=y)

{ if(d<0)

{d+=2 * x+3;x++;}

else

{d+=2*(x-y)+ 5;x++; y--;}

WholeCircle(xc,yc,x,y,color);

}

}

void main()

{

int xc=300,yc=200,r=100,color=7;

int x=0, y=r,d=1-r;

int driver=DETECT,mode=0;

initgraph(&driver,&mode,"");

printf("\n 计算1013 陈高伟2010810070\n");

for(;y>=50;y--,color--){

MidpointCircle(xc,yc,x,y,d,r,color);

if(color==-1)

color=7;

delay(100);

}

getch();

}

运行结果:

六、实验总结:

通过本次实验,初步了解了计算机图形学在计算机图像处理,工程制图,平面设计上面的应用,掌握了计算机绘制圆的几种算法,圆的生成算法,圆的生成算法,和圆的参数生成方法。

《产品设计及开发》教学大纲和实验大纲

《产品设计及开发》教学大纲 大纲说明 课程代码:3335007 总学时:64学时(讲课64学时) 总学分:4学分 课程类别:选修 适用专业:工业设计(本科) 预修要求:工业设计机械基础、形态设计基础、设计构成等 一、课程的性质、目的、任务: 本课程是工业设计专业的一门指导性专业课。通过本课程的学习和训练,使学生把握将市场营销、设计和制造的观点融为一体开发产品的整体思路;了解开发流程和组织、产品规划过程和产品开发项目管理的基本知识,掌握产品构造、产品开发项目的经济分析的基本常识。 二、课程教学的基本要求: 课程教学采用启发、观摩、演练式教学,加深学生对相应知识的理解。使用一些案例来说明产品开发方法,由浅入深,难易搭配,循序渐进。以培养能力为主题,要求学生积极参与,独立完成简单产品的开发,掌握开发产品的基本技能和技巧。 考核形式为考试。主要考查学生对基本概念的理解和应用。 三、大纲的使用说明: 教师可根据本课程发展情况、学生水平等实际情况对教学内容作适当的调整和变动。拟采用双语教学。 大纲正文 第一章引论学时:2学时(讲课2学时) 了解成功的产品开发的特点和产品开发的时间和成本,了解本课程特点。 本章讲授要点:产品开发的特点,产品开发的时间和成本,产品开发的挑战。 重点:产品开发的时间和成本。 难点:产品开发的特点。 第一节成功的产品开发的特点 第二节谁来设计和开发产品? 第三节产品开发的时间和成本 第四节产品开发的挑战 习题:估计在一个计算机的价格中,产品开发成本占多大比例。 第二章开发流程和组织学时:4学时(讲课4学时)

掌握基本的产品开发流程、概念开发流程,了解AMF公司的开发流程、产品开发组织。 本章讲授要点:产品开发流程、首末流程。 重点:产品开发流程。 难点:概念开发:首末流程 第一节基本的产品开发流程 第二节概念开发:首末流程 第三节采用基本的产品开发流程 第四节AMF公司的开发流程 第五节产品开发组织 习题:产品开发组织对于那些作为产品开发班的一部分而介入的学生来说,是什么? 第三章产品规划学时:4学时(讲课4学时) 掌握产品规划过程及其方法步骤。 本章讲授要点:产品规划过程,识别机会、项目评价和优先级排序、资源分配和时间计划、完成项目计划、对结果和流程做出反应。 重点:产品规划过程 难点:识别机会 第一节产品规划过程 第二节产品规划过程的方法步骤 习题:对选定产品进行开发过程规划。 第四章识别顾客需要学时:5学时(讲课5学时) 了解识别顾客需要的方法,理解建立需要的相对重要性,掌握对结果和流程做出反应的基本方法。 本章讲授要点:顾客需要、建立需要的相对重要性、对结果和流程做出反应。 重点:识别顾客需要。 难点:建立需要的相对重要性 第一节从顾客那里获取原始数据 第二节从顾客需要的角度理解原始数据 第三节组织需要的等级 第四节建立需要的相对重要性 第五节对结果和流程做出反应 习题:过大开发团队(多于10个人时)的有效调整方法。 第五章产品规格说明学时:5学时(讲课5学时) 了解什么是规格说明、何时建立规格说明、确定最终规格。掌握建立目标规格说明的方法。

计算机图形学正负法画圆

计算机图形学试验报告(六) 试验名称:利用正负法画圆 专业:地理信息系统班级:2011级1班学号:********姓名:日期:2013年 一、试验内容 1、利用中点法思想编写函数; 2、利用算法生成圆; 3、完成属性设置和增加交互功能; 二、试验目的 通过上机操作,编写中点法生成圆,理解重点算法的生成原理,并实现简单的交互功能。 三、试验原理 中点法生成圆,是利用函数曲线的交点与两个像素的中点的位置关系,来确定下一像素点的选取,决策变量d的初始值为d=d=5.0/4-r; 当点(x,y)在圆内时,d<0;当点在圆外时,d>0;当点在圆上时,d=0。根据判别变量F的正负,可设定x,y的移动方向,然后利用映射变换生成整个圆。 四、程序设计流程

五、试验程序 (1) #include “graphics.h” #include “conio.h” void MidpointCircle(x0,y0,r,color) { int x,y; float d; x=0; y=r; d=5.0/4-r; //设置初始变量d while(x<=y) { //结束判断 putdot(x0,y0,x,y,color); if(d<0) d+=x*2.0+3; //更新判别变量 else { d+=2.0*(x-y)+5; y--; //点在圆外,向下走一个单位} x++; } } putdot(x0,y0,x,y,color) { putpixel(x0+x,y0+y,color); putpixel(x0+x,y0-y,color); putpixel(x0-x,y0+y,color); putpixel(x0-x,y0-y,color); putpixel(x0+y,y0+x,color);

土木工程CAD考试大纲

《土木工程CAD》考试大纲 第一部分期末考试说明 一、期末考试要求 1.土木工程CAD是土木工程科学中一个比较年轻的分支学科,它的核心内容是研究如何运用计算机处理土木工程设计中的信息。本课程要求学生了解计算机技术在土木工程中应用的最新发展,掌握CAD技术的基本概念和理论。 2.土木工程CAD硬件环境是本课程的核心内容之一,要求学生熟悉各类图形输入、输出设备(如:键盘、鼠标、扫描仪、显示器、显示卡、打印机、绘图仪等)的工作原理和各项主要技术指标。 3.计算机图形学是土木工程CAD技术的数学基础。要求学生掌握二维图形生成的原理和常用算法,掌握主要几种图形变换(二维、三维几何变换、投影变换和窗口裁剪)的工作原理和实现方法。 4.AutoCAD2000是目前比较流行的绘图软件工具,在土木工程中有广泛的应用,要求学生熟练掌握AutoCAD2000的基本命令,能够用该软件完成中等复杂程度的土木工程施工图。 二、课程的教学要求层次 本课程的教学内容要求由低到高分为“了解、熟悉、掌握”三个层次,上机实践内容由低到高分为“了解、学会、熟练”三个层次。 三、试题类型 本课程试卷采用四种题型:填空题、选择题、简答题、作图题。 四、考核形式 期末考试采用闭卷笔试形式,卷面满分为100分。 五、答题时限 考试时间为90分钟。 第二部分考核的内容和要求 第一章绪论 考核知识点 1.CAD的基本概念及其研究与应用领域 2.CAD的发展历史、当前现状及难点与热点问题 考核要求 了解CAD的发展历史、当前现状及难点与热点问题 第二章常用图形输入、输出设备 考核知识点

1.常用图形输入设备的种类、主要性能指标及使用方法。 2.常用图形输出设备的种类、主要性能指标及使用方法。 考核要求 1.了解键盘、鼠标、扫描仪、显示卡、显示器、打印机和绘图仪的种类及主要性能指标; 2.掌握键盘、鼠标、打印机和绘图仪的使用方法. 第三章二维图形的生成算法 考核知识点 1、逐点比较法、数值微分法、Bresenham法的基本原理。 2、逐点比较法、数值微分法生成直线和圆的基本方法和步骤。 3、填充的基本原理。 考核要求 1、了解线性变换及其逆变换 2、了解点、直线的生成 3、了解填充的基本原理 第四章图形变换 考核知识点 1、二维基本几何变换 2、齐次坐标与平移变换 3、二维基本变换矩阵的级联——组合变换 4、三维基本几何变换 5、投影变换(1)三视图投影(2)透视变换 6、图形裁剪 考核要求 了解平移变换、投影变换和图形裁剪 第五章AutoCAD概述 考核知识点 1、AutoCAD2000的主要功能 2、AutoCAD2000的用户界面 3、AutoCAD2000的基本命令 4、AutoCAD2000的系统需求 考核要求 了解AutoCAD2000的主要功能、掌握AutoCAD2000的用户界面、基本命令和系统需求 第六章AUTOCAD绘图 考核知识点 1、AutoCAD2000中的开始创建新图 2、图层与实体特性 考核要求 1、掌握绘图环境的设置 2、熟练掌握图层的设置(颜色、线型和线宽) 第七章AUTOCAD基本绘图技术 考核知识点 1、基本绘图命令 2、图形的编辑与修改 3、目标捕捉 4、图块与属性 5、图案及其填充 6、外部引用

《计算机图形学》复习试题

计算机图形学模拟试卷 计算机图形学课程试卷(卷) 注意:1、本课程为必修(表明必修或选修),学时为 51 ,学分为 3 2、本试卷共 3 页;考试时间 120 分钟;出卷时间:年 12 月 3、姓名、学号等必须写在指定地方;考试时间:年 1 月 11 日 4、本考卷适用专业年级:任课教师: (以上内容为教师填写) 专业年级班级 学号姓名 一、名词解释(15分) 1.国际标准化组织(ISO)对计算机图形学的定义

2. 象素图 3. 正投影 4. 纹理 5. 位图 二.单项选择题(1.5×10=15分) ( )1、在TC 环境下编译绘图程序进行图形初始化时,要寻找文件的格式是?______。 A ).DOC B ).CPP C ).C D ).BGI ( )2、图形系统是由四部分组成,分别为 A).应用系统结构;图形应用软件;图形支撑软件;图形设备。 B).计算机;显示器;打印机;图形应用软件。 C).计算机;图形设备;图形支撑软件;图形应用软件。 D).计算机;图形软件;图形设备;应用数据结构。 ( )3、使用下列二维图形变换矩阵: T=???? ??????111020002 将产生变换的结果为______ 。 A )图形放大2倍; B )图形放大2倍,同时沿X 、Y 坐标轴方向各移动1个绘图单位; C )沿X 坐标轴方向各移动2个绘图单位; D )上述答案都不对。 ( )4、图形显示器的工作方式为 A ).文本方式 B ).图形方式 C ).点阵方式 D ).文本与图形方式 ( )5、透视投影中主灭点最多可以有几个? A) 3 B)2 C)1 D)0 ( )6、在用射线法进行点与多边形之间的包含性检测时,下述哪一个操作不正确? A) 当射线与多边形交于某顶点时且该点的两个邻边在射线的一侧时,计数0次 B) 当射线与多边形交于某顶点时且该点的两个邻边在射线的一侧时,计数2次 C) 当射线与多边形交于某顶点时且该点的两个邻边在射线的两侧时,计数1次 D) 当射线与多边形的某边重合时,计数1次 ( )7、下列有关平面几何投影的叙述语句中,正确的论述为

计算机图形学实验二

实验报告 课程名称:计算机图形学 实验项目:区域填充算法 实验仪器:计算机 系别:计算机学院 专业:计算机科学与技术 班级姓名:计科1602/ 学号:2016011 日期:2018-12-8 成绩: 指导教师:

一.实验目的(Objects) 1.实现多边形的扫描线填充算法。 二.实验内容 (Contents) 实现多边形的扫描线填充算法,通过鼠标,交互的画出一个多边形,然后利用种子填充算法,填充指定的区域。不能使用任何自带的填充区域函数,只能使用画点、画线函数或是直接对图像的某个像素进行赋值操作;

三.实验内容 (Your steps or codes, Results) //widget.cpp //2016CYY Cprogramming #include"widget.h" #include #include #include using namespace std; #define H 1080 #define W 1920 int click = 0; //端点数量 QPoint temp; QPoint first; int result = 1; //判断有没有结束 int sign = 1; //2为画线 int length = 5; struct edge { int ymax; float x; float dx; edge *next; }; edge edge_; QVector edges[H]; QVector points;//填充用 bool fin = false; QPoint *Queue = (QPoint *)malloc(length * sizeof(QPoint)); //存放端点的数组 Widget::Widget(QWidget *parent) : QWidget(parent) { } Widget::~Widget() { } void Widget::mouseMoveEvent(QMouseEvent *event) { setMouseTracking(true); if (click > 0 && result != 0) { startPt = temp; endPt =event->pos(); sign = 2; update(); } } void Widget::mouseReleaseEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton) { } else if (event->button() == Qt::RightButton) { sign = 2;

计算机图形学考试大纲

计算机科学与技术学科综合水平全国统一考试大纲及指南 计算机图形学 一、考试大纲 要求掌握设计和使用计算机图形学系统所必须的基本原理,其主要内容包括: 1.基本图形生成算法 2.二维图形显示 3.曲线和曲面的表示 4.三维物体的几何表示和几何变换 5.真实感图形的实现原理和算法 二、复习指南 (-)概述 1.计算机图形学和图形系统基本知识 计算机图形学研究对象及应用领域;图形系统的硬件和软件;图形标准接口。 2.基本图形的属性及生成算法 直线,曲线,填充区域,文字等。 (二)二维图形变换和显示 1.二维几何变换 平移、旋转、缩放及其组合,坐标系变换。 2.二维图形显示 点、线、多边形、曲线及文字的裁剪。 (三)曲线、曲面和三维图形 1.曲线和曲面的参数表示 Bezier曲线和曲面,双三次曲面的表示,B样条,插值,曲面拟合。 2.三维物体的几何表示方法 物体的定义及性质,特征参数法,边界表示法,曲面离散近似表示,实体构造表示法,八叉树表示法。 3.三维形体的输出过程 平面几何投影变换,观察空间,空间转换,三维裁剪。 (四)光学模型及其算法实现 l.简单光反射模型 基本光学原理,简单光反射模型(Phong模型)的导出和实现。 2.增量式光反射模型 双线性光强插值法(Crourand Shading),双线性法向插值法(Phong Shading),加速算法。 3.局部光反射模型 局部光反射模型及其实现。 4.光源模型 光源模型及其光强分布。 5.简单光透射模型 透明效果的模拟方法,Witted光透射模型,Hall光透射模型。 6.光线跟踪显示技术

基本光线跟踪算法,光线与物体求交,光线跟踪中的简单阴影。 (五)消隐显示和阴影生成技术 1.消隐显示技术 深度缓存算法(Z-Buffer),扫描线算法,多边形区域排序算法,列表优先算法。 2.阴影生成技术 阴影扫描线算法,阴影多边形算法,阴影空间算法,阴影深度缓存算法,反走样软影生成算法。 三、思考题 1.计算机图形显示器和绘图设备表示颜色的方法各是什么颜色系统?它们之间的关系如何? 2.简述侦缓存与显示器分辨率的关系。分辨率分别为640 * 480,1280 * 1024,和2560 * 2048的显示器各需要多少字节位平面数为24的帧缓存? 3.画直线的算法有哪几种?圆圆弧的算法有哪几种?写一个画带线宽的虚线的程序。 4.写一个画饼分图的程序,用不同的颜色填充各个区域。 5.写一个显示一串字符的程序。 6.分别写出平移、旋转、缩放及其组合的变换矩阵。 7.如何用几何变换实现坐标系的变换? 8.写出几种线裁剪算法;写出几种多边形裁剪算法。 9.写出Bezier曲线和面片的几种表达形式。 10.写出B样条的矩阵形式和调和函数。为什么使用非均匀有理B样条? 11.简述边界表示法(BREP)实体构造表示法(CSG) 12.写出透视变换矩阵和各种投影(三视图、正轴测和斜投影)变换矩阵。 13.观察空间有哪些参数?其作用是什么?写出从物体空间坐标系到观察空间坐标系转换矩阵。 14.分别写出对于透视投影和平行投影的从裁剪空间到规范化投影空间的转换矩阵。 15.写出从规范化投影空间到图象空间的转换矩阵。 16.写出简单光反射模型近似公式,并说明其适用范围及能产生的光照效果。 17.写出线光源的光强公式及其积分算法。 18.试描述Witted光透射反射模型和Hall光透射模型。 19.写出光线跟踪算法。 20.写出光线与几种常见物体面的求交界法。 21.简述消隐算法的分类。 22.简述深度缓存算法及其特点。 23.简述点与多边形之间的包合性检测算法。 24.描述扫描线算法。 25.简述阴影生成算法的分类及各种算法。 四、考试样卷 请从以下每小题的所给A~D答案中选出一个正确答案: 1.计算机绘图设备一般使用什么颜色模型? A)RGB;B)CMY:C)HSV;D)HLS 2.计算机图形显示器一般使用什么颜色模型? A)RGB;B)CMY;C)HSV;D)HLS 3.分辨率为1024*1024的显示器各需要多少字节位平面数为24的侦级存? A)512KB;B)1MB;C)2MB;D)3MB

计算机图形学5套模拟题

组卷规则:每套模拟题5个问答或者计算或者证明题,每题20分。 《计算机图形学基础》模拟试题(1) 1、简述Cohen-Sutherland 裁剪方法的思想,并指出与之相比,中点裁剪方法的改进之处,及这种改进的理由。 答:Cohen-Sutherland 裁剪算法的思想是:对于每条线段分为三种情况处理。(1)若完全在窗口内,则显示该线段简称“取”之。(2)若明显在窗口外,则丢弃该 线段,简称“弃”之。(3)若线段既不满足“取”的条件,也不满足“弃”的条件,则求线段与窗口交点,在交点处把线段分为两段。其中一段完全在窗口外,可弃之。然后对另一段重复上述处理。中点分割算法的大意是,与Cohen-Sutherland 算法一样首先对线段端点进行编码,并把线段与窗口的关系分为三种情况: 全在、完全不在和线段和窗口有交。对前两种情况, 进行同样的处理。对于第三种情况,用中点分割的方法求出线段与窗口的交点。即从点出发找出距最近的可见点A和从点出发找出距最近的可见点B,两个可见点之间的连线即为线段的可见部分。从出发找最近可见点采用中点分割方法:先求出的中点,若不是显然不可见的,并且在窗口中有可见部分,则距最近的可见点一定落在上,所以用代替;否则取代替。再对新的求中点。重复上述过程,直到长度小于给定的控制常数为止,此时收敛于交点。 改进之处在于,对第三种情况,不直接解方程组求交,而是采用二分法收搜索交点。这种改进的理由是:计算机屏幕的象素通常为1024×1024,最多十次二分搜索即可倒象素级,必然找到交点。而且中点法的主要计算过程只用到加法和除2运算,效率高,也适合硬件实现。 2、在Phong 模型 中,三项分别表示何含义?公式中的各个符号的含义指什么? 答:三项分别代表环境光、漫反射光和镜面反射光。为环境光的反射光强,为理想漫反射光强,为物体对环境光的反射系数,为漫反射系数,为镜面反射系数,为高光指数,L 为光线方向,N 为法线方向,V 为视线方向,R 为光线的反射方向。

计算机图形学课程参考文献

《计算机图形学》课程参考文献 [1 Kenneth R. Castleman, “Digital Image Processing”, Prentice-Hall International,Inc, 1996 [2] James Sharman. The Marching Cubes Algorithm[EB]. https://www.wendangku.net/doc/382459144.html,/. [3] William E. Lorensen, Harvey E. Cline. Marching Cubes: A High Resolution 3D Surface Construction Algrorithm[J].Computer Graphics, 1987, 21(4). [4] Jan Horn. Metaballs程序[CP]. http://www.sulaco.co.za. [5] 唐泽圣,等.三维数据场可视化[M].北京:清华大学出版社,1999.177-179. [6] 白燕斌,史惠康,等.OpenGL三维图形库编程指南[M].北京:机械工业出版社,1998. [7] 费广正,芦丽丹,陈立新.可视化OpenGL程序设计[M].北京:清华大学出版社,2001. [8] 田捷,包尚联,周明全.医学影像处理与分析[M].北京:电子工业出版社,2003. [9] 三维表面模型的重构、化简、压缩及其在计算机骨科手术模拟中的应用[R]. https://www.wendangku.net/doc/382459144.html,/~yike/uthesis.pdf ; [10] 首套中国数字化可视人体二维图像[DB]. http://www.chinesevisiblehuman. com/ pic/pictype.asp [11] 季雪岗,王晓辉,张宏林,等.Delphi编程疑难详解[M].北京:人民邮电出版社,2000. [12] 郑启华.PASCAL程序设计(第二版)[M].北京:清华大学出版社,1996. [13] 涂晓斌,谢平,陈海雷,蒋先刚.实用微机工程绘图实验教程[M].西南交通大学出版社,2004,4. [14] David F.Rogers.计算机图形学算法基础[M].北京:电子工业出版社,2002. [15] 李信真,车刚明,欧阳洁,封建湖.计算方法[M].西安:西北工业大学出版社,2000. [16] Paul Bourke Polygonising a scalar field [CP]. http://astronomy. https://www.wendangku.net/doc/382459144.html,.au/ ~pbourke/ modelling/polygonise/ [17] 刘骏.Delphi数字图像处理及高级应用[M].北京:科学出版社,2003. [18] 李弼程,彭天强,彭波,等.智能图像处理技术[M].北京:电子工业出版社,2004. [19] Kenneth R.Castleman著,朱志刚,石定机,等译.数字图像处理[M].北京:电子工业出版社,2002. [20] Milan Sonka, Vaclav Hlavac, Roger Boyle.Image Processing, Analysis, and Machine Vision [M].北京:人民邮电出版社,2003. [21] 阮秋奇.数字图像处理学[M]. 北京:电子工业出版社, 2001. [22] 刘宏昆,等.Delphi应用技巧与常见问题[M]. 北京:机械工业出版社, 2003. [23] 张增强,李鲲程,等.专家门诊—Delphi开发答疑300问[M].北京:人民邮电出版社,2003.6.

计算机图形学画圆实验报告

洛阳理工学院实验报告用纸

(2)画理想圆流程图如图-1: 图-1:画理想圆流程图 (3)中点画圆法 图-2 中点画圆法当前象素与下一象素的候选者

数,将乘法运算改成加法运算,即仅用整数实现中点画圆法。 (4)Bresenham画圆法 Bresenham画线法与中点画线法相似,,它通过每列象素中确定与理想直线最近的象素来进行直线的扫描的转换的。通过各行,各列的象素中心构造一组虚拟网格线的交点,然后确定该列象素中与此交点最近的的象素。该算法的巧妙之处在于可以采用增量计算,使得对于每一列,只要检查一个误差项的符号,就可以确定该列的所求对象。 假设x列的象素已确定,其行下标为y。那么下一个象素的列坐标必为x+1。而行坐标要么不变,要么递增1。是否递增1取决于如图所示的误差项d的值。因为直线的起始点在象素中心,所以误差项d的初始值为0。X下标每增加1,d的值相应递增直线的斜率值,即d=d+k(k=y/x为直线斜率)。一旦d>=1时,就把它减去,这样保证d始终在0、1之间。当d>0.5时,直线与x+1垂直网络线交点最接近于当前象素(x,y)的右上方象素(x+1,y+1);而当d<0.5时,更接近于象素(x+1,y),当d=0。5时,与上述二象素一样接近,约定取(x+1,y+1)。令e=d-0。5。则当e>=0时,下一象素的y下标增加1,而当e〈0时,下一象素的y下标不增。E的初始值为-0.5. (二)实验设计 画填充点流程图,如图-3: 图-3:圆的像素填充过程NS图 画理想圆,记录圆心坐标,计算半径大小,并记录 是否开始填充 否 是 初始化计数器、标志变量,设置最大计数值 调用Bresenha m画圆算法 否 是 填充标记是否为真 (While)计数变量小于最大计数值 循环变量temp + 1 填充计算出来的temp个坐 标点 计算需要填充坐标数组的 前temp个坐标

计算机图形学课程教学大纲

《计算机图形学》课程教学大纲一、课程基本信息 课程代码:110053 课程名称:计算机图形学 英文名称:Computer Graphics 课程类别:专业课 学时:72 学分: 适用对象:信息与计算科学专业本科生 考核方式:考试(平时成绩占总成绩的30%) 先修课程:高级语言程序设计、数据结构、高等代数 二、课程简介 中文简介: 计算机图形学是研究计算机生成、处理和显示图形的学科。它的重要性体现在人们越来越强烈地需要和谐的人机交互环境:图形用户界面已经成为一个软件的重要组成部分,以图形的方式来表示抽象的概念或数据已经成为信息领域的一个重要发展趋势。通过本课程的学习,使学生掌握计算机图形学的基本原理和基本方法,理解图形绘制的基本算法,学会初步图形程序设计。 英文简介: Computer Graphics is the subject which concerned with how computer builds, processes and shows graphics. Its importance has been shown in people’s more and more intensively need for harmony human-machine interface. Graphics user interface has become an important part of software. It is a significant trend to show abstract conception or data in graphics way. Through the learning of this course, students could master Computer Graphics’basic theories and methods,understand graphics basic algorithms and learn how to design basic graphics program. 三、课程性质与教学目的 《计算机图形学》是信息与计算科学专业的一门主要专业课。通过本课程的学习,使学生掌握基本的二、三维的图形的计算机绘制方法,理解光栅图形生成基本算法、几何造型技术、真实感图形生成、图形标准与图形变换等概念和知识。学会图形程序设计的基本方法,为图形算法的设计、图形软件的开发打下基础。 四、教学内容及要求 第一章绪论 (一)目的与要求 1.掌握计算机图形学的基本概念; 2.了解计算机图形学的发展、应用; 3.掌握图形系统的组成。

计算机图形学模拟题

计算机图形学试题B 2011/2012学年第一学期期末试题 一、选择题(每小题5分,共30分) 1. 分辨率为1024×1024的显示器各需要多少字节位平面数为24的帧缓存?( ) A)512KB B) 1MB C) 2MB D)3MB 2. 在直线的 Bresenham 算法中,若直线的斜率 |m|>1 ,且 y1

一种基于计算几何方法的最小包容圆求解算法.kdh

2007年 工 程 图 学 学 报2007 第3期 JOURNAL OF ENGINEERING GRAPHICS No.3一种基于计算几何方法的最小包容圆求解算法 张 勇, 陈 强 (清华大学机械工程系先进成形制造重点实验室,北京 100084) 摘要:为实现点集最小包容圆(最小外接圆)的求解,将计算几何中的α-壳的概 念应用到最小包容圆的计算过程,提出了一种精确有效的最小包容圆求解算法。根据α-壳定 义及最小包容圆性质,证明当1/α等于最小包容圆半径时点集的α-壳顶点共圆,1/α小于最小 包容圆半径时α-壳不存在,1/α大于最小包容圆半径时随着1/α减小α-壳顶点数逐渐减小的规 律。将α-壳顶点数目作为搜索最小包容圆半径的依据,实现了最小包容圆半径的搜索和最小包容圆的求解。 关键词:计算机应用;优化算法;计算几何;最小包容圆;α-壳 中图分类号:TP 391 文献标识码:A 文章编号:1003-0158(2007)03-0097-05 Algorithm for Minimum Circumscribed Circle Detection Based on Computational Geometry Technique ZHANG Yong, CHEN Qiang ( Key Laboratory for Advanced Manufacturing by Materials Processing Technology, Department of Mechanical Engineering, Tsinghua University, Beijing 100084, China ) Abstract: α-hulls are applied to calculate the minimum circumscribed circle (MCC) of point set and an accurate and effective method for MCC detection is established through finding the least squares circle of the point set and iteratively approaching the MCC with recursive subdivision. Several theorems concerning the properties of α-hulls are presented. If 1/α is equal to the radius of points’ MCC, all vertices of the α-hull will be on the same circle. When 1/α is larger than the MCC’s radius, the number of vertices of α-hulls will decrease with decreasing of 1/α, and the number of vertices’ number will reach zero when 1/α is smaller than MCC’s radius. From the above rules, an algorithm for detecting MCC is developed, and experimental results show this algorithm is reliable. Key words: computer application; optimized algorithm; computational geometry; minimum circumscribed circle; α-hull 收稿日期:2005-12-20 基金项目:国家自然科学基金资助项目(50275083);高校博士点基金资助项目(20020003053)

计算机图形学-画椭圆和圆

计算机图形学实验 圆、椭圆的中点算法 学院:计算机科学与技术学院专业:软件工程 班级:软工152 学号:08 学生姓名:刘强坤

姓名刘强坤学号408 实验组实验时间10-24 指导教师成绩实验项目名称圆,椭圆中点算法 实 验要求优化后的算法:二次差分法可任意指定圆心坐标 实 验 目 的 实 验 环 境 VS 2015 实验内容圆: void Bresenham_Circle( int xc, int yc, int r) ( int x, y, d; x = 0; y = r; d = 3 - 2 * r; glVertex2i(x + xc, y + yc); while (x < y) ( if (d < 0) ( d = d + 4 * x + 6; ) else ( d = d + 4 * (x - y) + 10; 学院:计算机科学与技术专业:软件工程班级:软工152

y--; ) x++; glVertex2i(x + xc, y + yc); glVertex2i(y + xc, x + yc); glVertex2i(y + xc, -x + yc); glVertex2i(x + xc, -y + yc); glVertex2i(-x + xc, -y + yc); glVertex2i(-y + xc, -x + yc); glVertex2i(-x + xc, y + yc); glVertex2i(-y + xc, x + yc); ) ) 椭圆: void Ellipsepot( int x0, int y0, int x, int y) ( //1 setPixel(( x0 + x), ( y0 + y)); // 2 setPixel(( x0 + x), ( y0 - y)); // 3 setPixel(( x0 - x), ( y0 - y)); // 4 setPixel(( x0 - x), ( y0 + y)); ) //中点画椭圆算法 void MidPoint_Ellipse( int x0, int y0, int a, int b) ( double sqa = a*a; double sqb = b*b; double d = sqb + sqa*(0.25 - b); int x = 0; int y = b; Ellipsepot( x0, y0, x, y); // 1 while (sqb*(x + 1) < sqa*(y - 0.5)) ( if (d < 0) ( d += sqb*(2 * x + 3);

计算机图形学模拟试卷一资料

北京语言大学网络教育学院 《计算机图形学》模拟试卷一 注意: 1.试卷保密,考生不得将试卷带出考场或撕页,否则成绩作废。请监考老师负责监督。 2.请各位考生注意考试纪律,考试作弊全部成绩以零分计算。 3.本试卷满分100分,答题时间为90分钟。 4.本试卷分为试题卷和答题卷,所有答案必须答在答题卷上,答在试题卷上不给分。 一、【单项选择题】(本大题共10小题,每小题2分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在答题卷相应题号处。 1、计算机图形学与计算机图像学(图像处理)的关系是( B )。 [A] 计算机图形学是基础,计算机图像学是其发展 [B] 不同的学科,研究对象和数学基础都不同,但它们之间也有可相互转换部分 [C] 同一学科在不同场合的不同称呼而已 [D] 完全不同的学科,两者毫不相干 2、多边形填充算法中,错误的描述是( D )。 [A] 扫描线算法对每个象素只访问一次,主要缺点是对各种表的维持和排序的耗费较大 [B] 边填充算法基本思想是对于每一条扫描线与多边形的交点,将其右方象素取补 [C] 边填充算法较适合于帧缓冲存储器的图形系统 [D] 边标志算法也不能解决象素被重复访问的缺点 3、在多边形的逐边裁剪法中,对于某条多边形的边(方向为从端点S到端点P)与某条裁剪线(窗口的某一边)的比较结果共有以下四种情况,分别需输出一些顶点.哪种情况下输出的顶点是错误的?( C ) [A] S和P均在可见的一侧,则输出点P [B] S和P均在不可见的一侧,,则输出0个顶点 [C] S在可见一侧,,P在不可见一侧,则输出线段SP与裁剪线的交点和S [D] S在不可见的一侧,P在可见的一侧,则输出线段SP与裁剪线的交点和P 4、由k个控制顶点Pi(i=1,… k)所决定的n次B样条曲线,由( C )段n次B 样条曲线段光滑连接而成。 [A] k-n-2[B] k-n-1 [C] k-n[D] k-n+1 5、凸多边形窗口的二维线裁剪Cyrus-Beck算法中,若( C ),说明P1P2与第i 条边平行。 [A] N i·(P2-P1)<0[B] N i·(P2-P1)> 0 [C] N i·(P2-P1)=0[D] N i·(P2-P1) ≠0

计算机图形学实验报告

计算机图形学 实验报告 学号:20072115 姓名: 班级:计算机 2班 指导老师:何太军 2010.6.19

实验一、Windows 图形程序设计基础 1、实验目的 1)学习理解Win32 应用程序设计的基本知识(SDK 编程); 2)掌握Win32 应用程序的基本结构(消息循环与消息处理等); 3)学习使用VC++编写Win32 Application 的方法。 4)学习MFC 类库的概念与结构; 5)学习使用VC++编写Win32 应用的方法(单文档、多文档、对话框); 6)学习使用MFC 的图形编程。 2、实验内容 1)使用WindowsAPI 编写一个简单的Win32 程序,调用绘图API 函数绘制若干图形。(可选任务) 2 )使用MFC AppWizard 建立一个SDI 程序,窗口内显示"Hello,This is my first SDI Application"。(必选任务) 3)利用MFC AppWizard(exe)建立一个SDI 程序,在文档视口内绘制基本图形(直线、圆、椭圆、矩形、多边形、曲线、圆弧、椭圆弧、填充、文字等),练习图形属性的编程(修改线型、线宽、颜色、填充样式、文字样式等)。定义图形数据结构Point\Line\Circle 等保存一些简单图形数据(在文档类中),并在视图类OnDraw 中绘制。 3、实验过程

1)使用MFC AppWizard(exe)建立一个SDI 程序,选择单文档; 2)在View类的OnDraw()函数中添加图形绘制代码,说出字符串“Hello,This is my first SDI Application”,另外实现各种颜色、各种边框的线、圆、方形、多边形以及圆弧的绘制; 3)在类视图中添加图形数据point_pp,pp_circle的类,保存简单图形数据,通过在OnDraw()函数中调用,实现线、圆的绘制。 4、实验结果 正确地在指定位置显示了"Hello,This is my first SDI Application"字符串,成功绘制了圆,椭圆,方形,多边形以及曲线圆弧、椭圆弧,同时按指定属性改绘了圆、方形和直线。成功地完成了实验。 结果截图: 5、实验体会 通过实验一,了解了如用使用基本的SDI编程函数绘制简单的图

计算机图形学基础期末复习提纲

计算机图形学基础期末复习提纲 第一章(5) 1.计算机图形学是研究怎样用计算机表示、生成、处理和显示图形的一门学科。 2.构成图形的要素包括几何要素:刻画对象的轮廓、形状等和非几何要素:刻画对象的颜色、材 质等。 3.计算机中表示带有颜色或形状信息的图形通常有两种方法:点阵法和矢量法。 4.图形和图像的定义。 5.计算机图形学与数字图形处理以及模式识别的区别。 第二章(8) 1.一个交互式的计算机图形系统应该具有哪5大功能? 2.常见的图形输入与输出设备有哪些 3.CRT显示器的基本组成 4.在CRT显示器中,电子束轰击荧光屏时荧光屏上显示的最小发光点,称为光点。 5.已知屏幕分辨率,光点的直径,求显示器的尺寸。 6.光栅扫描和随机扫描的概念 7.已知显示器的分辨率和每个像素的颜色数,如何求帧缓冲区的大小。 8.平板显示器主要分为发射型显示器和非发光型显示器,例如LED显示器、等离子板和LCD显示 器分别是哪类 第三章(2) 1.OpenGL是什么?英文全称为? 2.OpenGL可以跨平台吗? 第四章(25) 1.扫描转换概念 2.DDA画线法、中点画线法和Bresenham画线法 3.中点画圆和Bresenham画圆法 3.区域填充的概念 4.对扫描多边形填充算法的基本步骤,以及其数据结构,会构造ET表和AET表 5.使用栈的种子填充算法的具体步骤 6.如何进行直线和曲线的线型处理? 7.直线和曲线的线宽处理有几种方法,分别是什么? 8.字符是什么,字符的表示方式有哪两种?各有何特点? 9.什么是走样和反走样,反走样的方法有哪些? 第五章(20) 1.齐次坐标是什么?普通坐标和齐次坐标是一一对应关系吗? 2.规范化齐次坐标是什么?规范化齐次坐标与普通坐标是一一对应关系吗? 3.基本二维变换(平移、缩放和旋转)的矩阵表示。 4.如何求简单的复合变换,例如图形先平移然(tx,ty)后旋转(a),如何实现? 5.二维观察中涉及到的坐标系有哪5种坐标系?

相关文档
相关文档 最新文档