计算机图形学实验报告3 - Bresenham画线

计算机图形学实验报告3 - Bresenham画线
计算机图形学实验报告3 - Bresenham画线

班级 R数学111 大连交通大学姓名

实验报告同组人无

课程名称:计算机图形学成绩

实验名称: Bresenham画线 _ 指导老师任洪海

计算机图形学实验报告

《计算机图形学》实验报告姓名:郭子玉 学号:2012211632 班级:计算机12-2班 实验地点:逸夫楼507 实验时间:15.04.10 15.04.17

实验一 1 实验目的和要求 理解直线生成的原理;掌握典型直线生成算法;掌握步处理、分析实验数据的能力; 编程实现DDA 算法、Bresenham 中点算法;对于给定起点和终点的直线,分别调用DDA 算法和Bresenham 中点算法进行批量绘制,并记录两种算法的绘制时间;利用excel 等数据分析软件,将试验结果编制成表格,并绘制折线图比较两种算法的性能。 2 实验环境和工具 开发环境:Visual C++ 6.0 实验平台:Experiment_Frame_One (自制平台) 3 实验结果 3.1 程序流程图 (1)DDA 算法 是 否 否 是 是 开始 计算k ,b K<=1 x=x+1;y=y+k; 绘点 x<=X1 y<=Y1 绘点 y=y+1;x=x+1/k; 结束

(2)Mid_Bresenham 算法 是 否 否 是 是 是 否 是 否 开始 计算dx,dy dx>dy D=dx-2*dy 绘点 D<0 y=y+1;D = D + 2*dx - 2*dy; x=x+1; D = D - 2*dy; x=x+1; x

3.2程序代码 //-------------------------算法实现------------------------------// //绘制像素的函数DrawPixel(x, y); (1)DDA算法 void CExperiment_Frame_OneView::DDA(int X0, int Y0, int X1, int Y1) { //----------请实现DDA算法------------// float k, b; float d; k = float(Y1 - Y0)/float(X1 - X0); b = float(X1*Y0 - X0*Y1)/float(X1 - X0); if(fabs(k)<= 1) { if(X0 > X1) { int temp = X0; X0 = X1; X1 = temp; }

计算机图形学实验报告 (2)

中南大学信息科学与工程学院 实验报告实验名称 实验地点科技楼四楼 实验日期2014年6月 指导教师 学生班级 学生姓名 学生学号 提交日期2014年6月

实验一Window图形编程基础 一、实验类型:验证型实验 二、实验目的 1、熟练使用实验主要开发平台VC6.0; 2、掌握如何在编译平台下编辑、编译、连接和运行一个简单的Windows图形应用程序; 3、掌握Window图形编程的基本方法; 4、学会使用基本绘图函数和Window GDI对象; 三、实验内容 创建基于MFC的Single Document应用程序(Win32应用程序也可,同学们可根据自己的喜好决定),程序可以实现以下要求: 1、用户可以通过菜单选择绘图颜色; 2、用户点击菜单选择绘图形状时,能在视图中绘制指定形状的图形; 四、实验要求与指导 1、建立名为“颜色”的菜单,该菜单下有四个菜单项:红、绿、蓝、黄。用户通过点击不同的菜单项,可以选择不同的颜色进行绘图。 2、建立名为“绘图”的菜单,该菜单下有三个菜单项:直线、曲线、矩形 其中“曲线”项有级联菜单,包括:圆、椭圆。 3、用户通过点击“绘图”中不同的菜单项,弹出对话框,让用户输入绘图位置,在指定位置进行绘图。

五、实验结果: 六、实验主要代码 1、画直线:CClientDC *m_pDC;再在OnDraw函数里给变量初始化m_pDC=new CClientDC(this); 在OnDraw函数中添加: m_pDC=new CClientDC(this); m_pDC->MoveTo(10,10); m_pDC->LineTo(100,100); m_pDC->SetPixel(100,200,RGB(0,0,0)); m_pDC->TextOut(100,100); 2、画圆: void CMyCG::LineDDA2(int xa, int ya, int xb, int yb, CDC *pDC) { int dx = xb - xa; int dy = yb - ya; int Steps, k; float xIncrement,yIncrement; float x = xa,y= ya; if(abs(dx)>abs(dy))

南京邮电大学工程制图实验报告示例

实验报告 课程名称:制图基础及计算机绘图 学生姓名:某某某 班级学号: B14020XXX 指导教师: XXX 指导单位:理学院 日期:年月日至年月日

实验一平面图形的设计 班级B140209 学号姓名 第周星期第节成绩 一、实验目的 1. 学会打开、关闭和保存图形文件和熟悉MDT2004DX的界面。熟悉MDT2004DX环境及 常用绘图命令和编辑命令。 2. 学会部分常用绘图命令和编辑命令,掌握工具栏的调用方法。 3. 学会视窗的显示控制和图层的建立,学会注写文字。 二、实验内容 按图示尺寸完成横置A4图一张,尺寸标注不作要求。横置A4图纸幅面尺寸、图框、标题栏按教材第1章相关内容绘制。 注意:在标题栏的绘图后面填写姓名和学号信息!!! 三、实验步骤 (结合屏幕截图,详细描述作图主要步骤) 1 启动Mechanical Desktop

选择“开始→所有程序→Autodesk→Mechanical Desktop 2004 DX→Mechanical Desktop 2004 DX”。 2 创建新图形文件 选择菜单“文件→新建部件文件”执行New命令,在选择样板对话框中选择Gb_a3.dwt,如图1所示。 图1 3 绘制420*297的矩形框。 选择菜单“设计→直线”,使用Line命令按下述操作。 结果如图2所示: 4 绘制图框。

选择菜单“修改—偏移”,使用偏移命令按下述操作完成。结果如图3所示。 图3 5 去除图框四角多余部分。 选择菜单“修改—圆角”,按下述操作完成。 结果如图4所示。

图4 6 创建表格框 选择菜单“修改—偏移”,使用偏移命令按下面步骤进行。结果如图5所示。

计算机图形学实验三报告

计算机科学与通信工程学院 实验报告 课程计算机图形学 实验题目二维图形变换 学生姓名 学号 专业班级 指导教师 日期

成绩评定表

二维图形变换 1. 实验内容 完成对北极星图案的缩放、平移、旋转、对称等二维变换。 提示:首先要建好图示的北极星图案的数据模型(顶点表、边表)。另外,可重复调用“清屏”和“暂停”等函数,使整个变换过程具有动态效果。 2. 实验环境 软硬件运行环境:Windows XP 开发工具:visual studio 2008 3. 问题分析

4. 算法设计 程序框架: //DiamondView.h class CDiamondView : public CView { …… public: //参数输入和提示对话框 void Polaris();//北极星 …… }; //DiamondView.cpp void CDiamondView::OnMenuDiamond() { IsCutting = FALSE; if(dlgDiamond.DoModal()==IDOK) DrawDiamond(dlgDiamond.m_nVertex,dlgDiamond.

m_nRadius,100);//调用绘制金刚石的函数 } //北极星 void CDiamondView::Polaris() {......} 5. 源代码 //北极星 void hzbjx(CDC* pDC,long x[18],long y[18]) { CPen newPen1,*oldPen; newPen1.CreatePen(PS_SOLID,2,RGB(255,0,0)); oldPen = pDC->SelectObject(&newPen1); POINT vertex1[11]={{x[1],y[1]},{x[2],y[2]},{x[3],y[3]},{x[4],y[4]},{x[5],y[5]},{x[3],y[3]},{x[1],y[1]}, {x[6],y[6]},{x[3],y[3]},{x[7],y[7]},{x[5],y[5]}}; pDC->Polyline(vertex1, 11); newPen1.DeleteObject(); newPen1.CreatePen(PS_SOLID, 2, RGB(0,255,0)); oldPen = pDC->SelectObject(&newPen1); POINT vertex2[5]={{x[6],y[6]},{x[8],y[8]},{x[9],y[9]},{x[3],y[3]},{x[8],y[8]}}; pDC->Polyline(vertex2, 5); POINT vertex3[5]={{x[4],y[4]},{x[10],y[10]},{x[11],y[11]},{x[3],y[3]},{x[10],y[10]}}; pDC->Polyline(vertex3, 5);

《工程制图与计算机制图A》实验报告

《工程制图与计算机制图A》实验报告 学院:自动化学院 班级:自动18班 姓名: 学号: 上机时间:2018.11.3 上机地点:一号实验楼238号

实验一AutoCAD的基本操作 一、实验目的 1、了解AutoCAD基本概念 2、学习AutoCAD的基本操作 二、实验内容 (一)几何图形绘制 I、实验要求: 1. 启动AutoCAD,熟悉工作界面。 2. 根据所注尺寸1∶1绘制图1-1所示图形。 图1-1 几何图形 II、实验方法: 1.首先打开AutoCAD2007进入到工作界面,选用矩形命令设置为六边形,然后画图如图所示 2. 选用矩形命令设置长宽制出矩形,并选中对象设置其线宽,绘制定位线并且进行平移和设置线型和线宽,再进行旋转,剪切。最后得到如图所示 3. 选用圆形命令设置半径先绘出两个半径不一的同心圆,随后选用椭圆命令画一个椭圆使其长轴的两个顶点与两个同心圆相接,再使用镜像命令以圆的直径为镜像线画出其他椭圆 4. 首先使用画圆命令,在页面中心画出一个大圆,再使用画圆命令,画出两个中圆内切于大圆,再次使用画圆命令,画出两个直径略小的小圆,最后使用删除指令,删除不必要的线段,使用图案填充添加拾取点涂上颜色,一个太极图片就出来了 三、实验总结和心得 1.通过这堂AutoCAD的上机,我第一次用电脑独立的完成绘图,能够绘制一些基本的图形,掌握了如何绘制出一些符合要求的图形,学会运用了cad的一些绘图命令,感叹cad功能强大的同时也提升了自己作为大学生的基本基础绘图技能 2.我基本掌握到了CAD的基础操作,没有了对之前CAD的陌生感。

实验二基本实体三视图的绘制 一、实验目的 学会使用极轴追踪、对象捕捉和对象追踪画简单三视图 二、实验内容 绘制三视图 一.实验要求: 1 .熟悉并掌握用AutoCAD二维交互功能绘制三视图 2.正确使用极轴追踪、对象捕捉和对象追踪 3.熟悉使用图层操作 二.实验方法 (1)用“图形单位”对话框确定绘图单位(使用缺省值)。 (2)用“LIMITS”(图限)命令选A4图幅(长297mm,宽210 mm)。 (3)打开正交、栅格及栅格捕捉。 (4)建图层、设线型、线宽及颜色。 粗实线黑色实线(CONTINUOUS) 0.5 mm 虚线黑色虚线(JIS_02_1.0) 0.55 mm (5)先画正视图,用直线绘制图形的基准线,再绘制图形;在绘制俯视图,用直 线绘制基准线,再用粗实线根据主视图绘制完成俯视图;绘制左视图,根据主视 图和俯视图,绘制一条135度的辅助线,在根据主视图用直线绘制基准线,然后 利用辅助线,根据俯视图绘制完成左试图。运用剪切,删除等修改图形,最终绘 制成习题2.1的图案 图2-1 绘制三视图 画简单的三视图(不注尺寸),如图2-1所示。注意利用“极轴追踪”、“对象捕捉”和“对象追踪”使三视图“长对正、高平齐、宽相等”。 三、实验总结和心得 通过本次实验,我了解了图型界限的含义,掌握了绘图编辑的基本操作和重要操作,同时也掌握了使用正交绘图、动态输入命令和设置光标捕捉、栅格、对象捕捉、极轴追踪的方法,熟悉了对象特性包括线型、线宽、颜色等的设置。

计算机图形学实验

实验1 直线的绘制 实验目的 1、通过实验,进一步理解和掌握DDA和Bresenham算法; 2、掌握以上算法生成直线段的基本过程; 3、通过编程,会在TC环境下完成用DDA或中点算法实现直线段的绘制。实验环境 计算机、Turbo C或其他C语言程序设计环境 实验学时 2学时,必做实验。 实验内容 用DDA算法或Besenham算法实现斜率k在0和1之间的直线段的绘制。 实验步骤 1、算法、原理清晰,有详细的设计步骤; 2、依据算法、步骤或程序流程图,用C语言编写源程序; 3、编辑源程序并进行调试; 4、进行运行测试,并结合情况进行调整; 5、对运行结果进行保存与分析; 6、把源程序以文件的形式提交; 7、按格式书写实验报告。 实验代码:DDA: # include # include

void DDALine(int x0,int y0,int x1,int y1,int color) { int dx,dy,epsl,k; float 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/(float)epsl; yIncre=(float)dy/(float)epsl; for(k=0;k<=epsl;k++) { putpixel((int)(x+0.5),(int)(y+0.5),4); x+=xIncre; y+=yIncre; } } main(){ int gdriver ,gmode ;

工程制图与实习实验报告模板.docx

工程制图与CAD 实习报告 学院:材料与化工学院 班级:化工 0801 学号: 姓名:李天宇 指导老师:张平 实验一:AutoCAD的基本操作 指导教师实验时间: 2011 年3月10日 学院学院专业 班级学号姓名实验室 一、实验题目: AutoCAD的基本操作 二、实验目的: 1、了解AutoCAD基本概念 2、学习AutoCAD2008的基本操作 三、实验主要步骤及结果: 1、几何图形绘制 (1)启动AutoCAD 用下拉菜单“格式”→“单位”或命令行输入:UNITS↙,查看和设置绘图单位、精度(建议使用缺省值)及角度(建议使用缺省值)。

(2)设置图幅(选A3图幅)。 (3)用绘图工具栏的直线命令绘制,绘图时确定点的方式:用鼠标导向“直接距离”方式画各水平、垂直线(打开极轴);用“相对坐标”方式画斜线。 (4)将绘制的图形存盘,在后面标注尺寸时使用。 2、图框设置与绘制 (1)用“图形单位”对话框确定绘图单位(建议使用缺省值)。 (2)用“LIMITS”(图限)命令选A3图幅(长420 mm,宽297 mm)。 (3)打开正交、栅格及栅格捕捉。 (4)建图层、设线型、线宽及颜色。 粗实线白色(或黑色)实线(CONTINUOUS) 0.7 mm 细实线白色(或黑色)实线(CONTINUOUS) 0.35 mm 点画线红色点画线(CENTER) 0.35 mm 虚线蓝色虚线(HIDDENX2) 0.35 mm 尺寸白色(或黑色)实线(CONTINUOUS) 0.35 mm (5)用绘图工具栏的直线命令图标按钮绘制边框,在粗实线层上画图框线,在细实线层上画图幅线。 心得体会:通过这次实验,我对CAD绘图有了初步的了解,掌握了 CAD中基本绘图操作 以下书写实验的有关格式,仅作参考:

计算机图形学实验报告

计算机图形学 实验报告 姓名:谢云飞 学号:20112497 班级:计算机科学与技术11-2班实验地点:逸夫楼507 实验时间:2014.03

实验1直线的生成 1实验目的和要求 理解直线生成的原理;掌握典型直线生成算法;掌握步处理、分析 实验数据的能力; 编程实现DDA算法、Bresenham中点算法;对于给定起点和终点的 直线,分别调用DDA算法和Bresenham中点算法进行批量绘制,并记 录两种算法的绘制时间;利用excel等数据分析软件,将试验结果编 制成表格,并绘制折线图比较两种算法的性能。 2实验环境和工具 开发环境:Visual C++ 6.0 实验平台:Experiment_Frame_One(自制平台)。 本实验提供名为 Experiment_Frame_One的平台,该平台提供基本 绘制、设置、输入功能,学生在此基础上实现DDA算法和Mid_Bresenham 算法,并进行分析。 ?平台界面:如错误!未找到引用源。所示 ?设置:通过view->setting菜单进入,如错误!未找到引 用源。所示 ?输入:通过view->input…菜单进入.如错误!未找到引用 源。所示 ?实现算法: ◆DDA算法:void CExperiment_Frame_OneView::DDA(int X0, int Y0, int X1, int Y1) Mid_Bresenham法:void CExperiment_Frame_OneView::Mid_Bresenham(int X0, int Y0, int X1, int Y1)

3实验结果 3.1程序流程图 1)DDA算法流程图:开始 定义两点坐标差dx,dy,以及epsl,计数k=0,描绘点坐标x,y,x增 量xIncre,y增量yIncre ↓ 输入两点坐标x1,y1,x0,y0 ↓ dx=x1-x0,dy=y1-y0; _________↓_________ ↓↓ 若|dx|>|dy| 反之 epsl=|dx| epsl=|dy| ↓________...________↓ ↓ xIncre=dx/epsl; yIncre=dy/epsl ↓ 填充(强制整形)(x+0.5,y+0.5); ↓←←←← 横坐标x+xIncre; 纵坐标y+yIncre; ↓↑ 若k<=epsl →→→k++ ↓ 结束 2)Mid_Bresenham算法流程图开始 ↓ 定义整形dx,dy,判断值d,以及UpIncre,DownIncre,填充点x,y ↓ 输入x0,y0,x1,y1 ______↓______ ↓↓ 若x0>x1 反之 x=x1;x1=x0;x0=x; x=x0;

三年级科学实验报告单

实验内容:鹦鹉站立制作实验 年级:三年级上册第一单元 课题:1、做一名小科学家 实验器材:彩色卡纸一张、剪刀、回形针 实验类型:教师演示、学生操作 实验结论:回形针分别别在鹦鹉的脚的两侧,可以使鹦鹉平稳站立在手指上。

实验内容:蜗牛观察实验 年级:三年级上册第二单元 课题:1、校园里的小动物 实验器材:蜗牛一只、大号餐盘、菜叶、肉片、苹果皮、鸡蛋、面包、醋、啤酒、玻璃片 实验类型:教师放在食物展台上展示实验 实验结论:上述食物,蜗牛只吃菜叶,如用书上几种材料,蜗牛除了菜叶还喜欢黄瓜。遇到醋或者酒之类刺激物体,蜗牛会立刻缩回到壳里。

实验内容:水的毛细现象 年级:三年级上册第三单元 课题:2、神奇的水 实验器材:不同颜色的水、纸巾;粉笔、纱布、塑料片、玻璃片(2块,在其中一块玻璃片上绕上几圈透明胶);两支粗细不一样的玻璃管; 实验类型:教师演示实验、学生操作实验

实验结论:水能沿着缝隙或小孔向上“爬升”,这种现象叫做毛细现象。孔隙越小,水爬升得越高。

大中小学三年级科学上册分组实验报告单实验内容:观察水 年级:三年级上册第三单元 课题:2、神奇的水 实验器材:滴管、一元硬币、烧杯、回形针每组一盒;戳好洞的可乐瓶一只、水盆一个;大小烧杯各一只、橡皮泥一块、50克砝码一只、细线一根。 实验类型:水的表面张力为学生操作实验,会喷射的水和会托举的水为教师演示实验,水的溶解实验为学生操作实验

实验结论: 会团结的水:水面会成一个圆弧形,因为表面的水有一股相互之间拉着的力,可以承受一点的重量。 会喷射的水:瓶子上方小孔的水喷射的距离近,下方小孔的水喷射的距离远,因

工程制图实验报告(1)

第一次工程制图实验报告 实验日期:2010.10.11 2010.10.18 2010.10.25 课程名称::工程制图实验名称:AutoCAD 二维绘图技能训练 实验目的:熟悉 AutoCAD 的绘图环境设置方法及绘图辅助功能使用技巧,掌握常用 二维绘图及编辑命令,达到能绘制二维工程图样的目的。实验过程:共上机操作 3 次,实践的内容有: 1、学习图纸界限、图层的设置,图线特性选择; 2、学习各种坐标输入方式,捕捉,夹点编辑; 3、掌握二维绘图及编辑命令; 1、图样分析: 根据分析,已知主视图和左视图求画俯视图,此图由一个长方体切割而得,中间再镂空一个小圆柱体并且中间为空心求只有一半,而且其的具有一定的厚度,然后小圆柱体中间偏后面同样被镂空一个小圆柱体,同样也只有半圆,如此我们便能得到大致的轮廓。根据大小,我们应该选择A3或者

A4的纸,图层设置应该包括粗实线,虚线中心线这三种。根据相应的大小及分析,得到我们想要的俯视图。 2、绘制过程: ①limits命令设置图纸界限为A3 幅面;然后 先点击文件新建一个再点击打开建立一个公制类型的无样板打开。 ②激活图层特性管理器,新建粗实线层、中心线层、虚线层其中粗实线宽设为0.3毫米、中心线选用加载的CENTER,且颜色设为黄色,虚线层用dashed线性且为红色。 ③将粗实线层置为当前层,用多段线命令画出图样的主视图的大致轮廓,后面再用圆命令将两个小圆出来,再利用剪接命令得到圆弧最后得到主视图; ④在主视图的右侧再利用多段线命令画出左视图,长与俯视图的宽一致,宽则与主视图的高一致。 将中心线层置为当前层,画时先打开对像捕捉,再捕取主视图的上下两边中点,做出中心线,且可向下延伸一段距离作

计算机图形学实验报告

计算机图形学 实验报告 学号: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编程函数绘制简单的图

《计算机图形学实验报告》

一、实验目的 1、掌握中点Bresenham直线扫描转换算法的思想。 2掌握边标志算法或有效边表算法进行多边形填充的基本设计思想。 3掌握透视投影变换的数学原理和三维坐标系中几何图形到二维图形的观察流程。 4掌握三维形体在计算机中的构造及表示方法 二、实验环境 Windows系统, VC6.0。 三、实验步骤 1、给定两个点的坐标P0(x0,y0),P1(x1,y1),使用中点Bresenham直线扫描转换算法画出连接两点的直线。 实验基本步骤 首先、使用MFC AppWizard(exe)向导生成一个单文档视图程序框架。 其次、使用中点Bresenham直线扫描转换算法实现自己的画线函数,函数原型可表示如下: void DrawLine(CDC *pDC, int p0x, int p0y, int p1x, int p1y); 在函数中,可通过调用CDC成员函数SetPixel来画出扫描转换过程中的每个点。 COLORREF SetPixel(int x, int y, COLORREF crColor ); 再次、找到文档视图程序框架视图类的OnDraw成员函数,调用DrawLine 函数画出不同斜率情况的直线,如下图:

最后、调试程序直至正确画出直线。 2、给定多边形的顶点的坐标P0(x0,y0),P1(x1,y1),P2(x2,y2),P3(x3,y3),P4(x4,y4)…使用边标志算法或有效边表算法进行多边形填充。 实验基本步骤 首先、使用MFC AppWizard(exe)向导生成一个单文档视图程序框架。 其次、实现边标志算法或有效边表算法函数,如下: void FillPolygon(CDC *pDC, int px[], int py[], int ptnumb); px:该数组用来表示每个顶点的x坐标 py :该数组用来表示每个顶点的y坐标 ptnumb:表示顶点个数 注意实现函数FillPolygon可以直接通过窗口的DC(设备描述符)来进行多边形填充,不需要使用帧缓冲存储。(边标志算法)首先用画线函数勾画出多边形,再针对每条扫描线,从左至右依次判断当前像素的颜色是否勾画的边界色,是就开始填充后面的像素直至再碰到边界像素。注意对顶点要做特殊处理。 通过调用GDI画点函数SetPixel来画出填充过程中的每个点。需要画线可以使用CDC的画线函数MoveTo和LineTo进行绘制,也可以使用实验一实现的画直线函数。 CPoint MoveTo(int x, int y ); BOOL LineTo(int x, int y ); 实现边标志算法算法需要获取某个点的当前颜色值,可以使用CDC的成员函数 COLORREF GetPixel(int x, int y ); 再次、找到文档视图程序框架视图类的OnDraw成员函数,调用FillPolygon 函数画出填充的多边形,如下: void CTestView::OnDraw(CDC* pDC) { CTestcoodtransDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc);

计算机图形学实验报告

计算机图形学(computer graphics)的基本含义是使用计算机通过算法和程序在显示设备上构造图形。图形是人们通过计算机设计和构造出来的,不是通过摄像机、扫描仪等设备输入的图像。这里的图形可以是现实中存在的图形,也可以是完全虚拟构造的图形。以矢量图的形式呈现,更强调场景的几何表示,记录图形的形状参数与属性参数。例如,工程图纸(drawing),其最基本的图形单元是点、线、圆/弧等,其信息包含图元的几何信息与属性信息(颜色、线型、线宽等显式属性和层次等隐式属性)。 图像处理(image processing)则是研究图像的分析处理过程,图像处理研究的是图像增加、模式识别、景物分析等,研究对象一般为二维图像。图像以点阵图形式呈现,并记录每个点的灰度或色彩。例如,照片、扫描图片和由计算机产生的真实感和非真实感图·形等,最基本的图像单元(pels,picture elements)是点—像素(pixel),其信息实际上是点与它的属性信息(颜色、灰度、亮度等)。 计算机视觉(computer vision)包括获取、处理、分析和理解图像或者更一般意义的真实世界的高维数据方法,它的目的是产生决策形式的数字或者符号信息。

计算机图形学和计算机视觉是同一过程的两个方向。计算机图形学将抽象的语义信息转化成图形,计算机视觉则从图形中提取抽象的语义信息,图像处理研究的则是一个图像或一组图像之间的相互转化和关系,与语义信息无关。下表从输入和输出的角度对三者的区别进行辨析: 表2 图像处理&计算机视觉&计算机图形学对比 计算机图形学,输入的是对虚拟场景的描述,通常为多边形数组,而每个多边形由三个顶点组成,每个顶点包括三维坐标、贴图坐标、RGB 颜色等。输出的是图像,即二维像素数组。 计算机视觉,输入的是图像或图像序列,通常来自相机、摄像头或视频文件。输出的是对于图像序列对应的真实世界的理解,比如检测人脸、识别车牌。图像处理,输入的是图像,输出的也是图像。

工程制图与CAD实习实验报告模板.doc

工程制图与CAD 实习报告 学院:材料与化工学院 班级:化工0801 学号:2008010719 姓名:李天宇 指导老师:张平

实验一:AutoCAD的基本操作 指导教师实验时间:2011 年3月10日 学院学院专业 班级学号姓名实验室 一、实验题目: AutoCAD的基本操作 二、实验目的: 1、了解AutoCAD基本概念 2、学习AutoCAD2008的基本操作 三、实验主要步骤及结果: 1、几何图形绘制 (1)启动AutoCAD 用下拉菜单“格式”→“单位”或命令行输入:UNITS↙,查看和设置绘图单位、精度(建议使用缺省值)及角度(建议使用缺省值)。 (2)设置图幅(选A3图幅)。 (3)用绘图工具栏的直线命令绘制,绘图时确定点的方式:用鼠标导向“直接距离”方式画各水平、垂直线(打开极轴);用“相对坐标”方式画斜线。 (4)将绘制的图形存盘,在后面标注尺寸时使用。

2、图框设置与绘制 (1)用“图形单位”对话框确定绘图单位(建议使用缺省值)。 (2)用“LIMITS”(图限)命令选A3图幅(长420 mm,宽297 mm)。(3)打开正交、栅格及栅格捕捉。 (4)建图层、设线型、线宽及颜色。 粗实线白色(或黑色)实线(CONTINUOUS)0.7 mm 细实线白色(或黑色)实线(CONTINUOUS)0.35 mm

点画线红色点画线(CENTER)0.35 mm 虚线蓝色虚线(HIDDENX2)0.35 mm 尺寸白色(或黑色)实线(CONTINUOUS)0.35 mm (5)用绘图工具栏的直线命令图标按钮绘制边框,在粗实线层上画图框线,在细实线层上画图幅线。 心得体会: 通过这次实验,我对CAD绘图有了初步的了解,掌握了CAD中基本绘图操作

(三年级上册)科学实验报告单

三年级上册演示分组时间年月日指导老师 实验名称:树皮拓印 实验目的:用拓印的方法观察树干 实验器材::白纸、笔 实验步骤: 1一只手将白纸按在树干上。 2、另一只手用铅笔在白纸上涂磨。 3、取下涂磨的纸与别的组进行比较观。 观察到的现象:树皮上有() 。 实验结论:

三年级上册演示分组 时间年月日指导老师 实验名称:叶的标本制作 实验目的::学会制作叶的标本。知道叶的标本与认识叶的作用 实验器材::各种叶、标本纸、固定胶等 实验步骤: 1、选择几种完整的叶。 2、将不同的叶,正面朝上平放在标本纸上,尽量做到美观大方。 3、用固定胶固定。 观察到的现象: 。 实验结论:

三年级上册演示分组时间年月日指导老师 实验名称:观察狗尾草 实验目的:观察狗尾草特征 实验器材:摘一棵狗尾草 实验步骤: 1、在野外取一棵狗尾草。 2、观察它的的根、茎、叶、花、果实。 观察到的现象:茎较(),多()。 实验结论:

三年级上册演示分组 时间年月日指导老师 实验名称:认识各种各样的叶 实验目的:认识到不同的树叶,形状是不同的,叶脉也不同 实验器材:各种叶、放大镜 实验步骤: 1、将各种叶平放在一块。 2、观察比较 3、用放大镜观察叶脉及其他 观察到的现象:不同的树叶,()是不同的,叶脉也()实验结论:

三年级上册演示分组 时间年月日指导老师 实验名称:蜗牛观察实验 实验目的:认识蜗牛的反应;蜗牛的运动;蜗牛吃食物 实验器材:蜗牛一只、大号餐盘、菜叶、肉片、苹果皮、鸡蛋、面包、醋、啤酒、玻璃片 实验步骤: 1、观察蜗牛的爬行①将捕捉到的蜗牛放在黑暗的盒子里一段时间,②实验时拿出来放在小玻璃片上,观察它的爬行, 2.蜗牛食性实验,在盘子周围一圈分别间隔放上菜叶、肉片、苹果皮、鸡蛋、面包。②、放入蜗牛,指导学生安静,耐心观察,可能需要等待一段时间。观察期间保持安静。 3.蜗牛对刺激性的反应①、把蜗牛放在盘子中间,在蜗牛面前滴一点醋或一点酒,观察其反应。(不要倒在蜗牛身上)②、静静观察,观察期间保持安静。 观察到的现象: 实验结论:蜗牛除了吃菜叶还喜欢()。遇到醋或者酒之类刺激物体,蜗牛会 立刻()。

工程制图-实验报告书格式

学生实验报告 (理工类) 课程名称:工程制图专业班级:14电子信息工程(1)学生学号: 1415101041 学生姓名:滕超 所属院部:电子信息工程学院指导教师:臧娴 20 14 ——20 15 学年第 2 学期 金陵科技学院教务处制

实验报告书写要求 实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。 实验报告书写说明 实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用五级计分制或百分制,具体评分标准由各院部自行制定。 实验报告装订要求 实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。

实验项目名称:平面图形综合练习一实验学时: 4 同组学生姓名:实验地点: A104 实验日期: 2015-3-31 实验成绩: 批改教师:批改时间: 一、实验目的和要求 1、熟悉AutoCAD 基本环境及设置。 2、熟悉基本绘图命令和编辑命令。 3、掌握平面图形的绘制方法和技巧。 4、掌握图层的设置和使用方法。 5、掌握文字注写与尺寸标注的方法。 6、综合应用对象捕捉等辅助功能。 二、实验仪器和设备 1、计算机一台。 2、AutoCAD2012 中文版操作环境。 三、实验原理 1、制图基本标准和教材第一章知识。 2、圆CIRCLE、直线LINE 等绘图命令的用法。 3、修剪TRIM、偏移OFFSET、删除ERASE、阵列ARRAY 和修改特性等编辑命 令的用法。 4、线型LINESTYLE 和线宽等图形特性的设置和修改方法。 5、文字注写方法。 6、尺寸标注方法。 四、实验结果

计算机图形学实验报告三

《计算机图形学》实验报告

glClear(GL_COLOR_BUFFER_BIT); //glEnable(GL_SCISSOR_TEST); //glScissor(0.0f,0.0f,500,300); glutWireTeapot(0.4); glFlush(); } //窗口调整子程序 void myReshape(int w, int h) { glViewport(500, -300, (GLsizei)w, (GLsizei)h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); if (w <= h) glOrtho(-1, 1, -(float)h / w, (float)h / w, -1, 1); else glOrtho(-(float)w / h, (float)w / h, -1, 1, -1, 0.5); } 2,使用opengl函数写一个图形程序,要求分别使用三个光源从一个茶壶的前右上方(偏红色),正左侧(偏绿色)和前左下方(偏蓝色)对于其进行照射,完成程序并观察效果。

} //绘图子程序 void display(void) { glColor3f(1.0, 1.0, 0.0); glClear(GL_COLOR_BUFFER_BIT); //glMatrixMode(GL_MODELVIEW); //glLoadIdentity(); //设置光源的属性1 GLfloat LightAmbient1[] = { 1.0f, 0.0f, 0.0f, 1.0f }; //环境光参数 ( 新增 ) GLfloat LightDiffuse1[] = { 1.0f, 0.0f, 0.0f, 1.0f }; // 漫射光参数 ( 新增 ) GLfloat Lightspecular1[] = { 1.0f, 0.0f, 0.0f, 1.0f }; // 镜面反射 GLfloat LightPosition1[] = { 500.0f, 500.0f, 500.0f, 1.0f }; // 光源位置 ( 新增 ) glLightfv(GL_LIGHT0, GL_POSITION, LightPosition1);

三年级科学实验报告单

大中小学三年级科学上册分组实验报告单实验内容:鹦鹉站立制作实验 年级:三年级上册第一单元 课题:1、做一名小科学家 实验器材:彩色卡纸一张、剪刀、回形针 实验结论:回形针分别别在鹦鹉的脚的两侧,可以使鹦鹉平稳站立在手指上。 1 大中小学三年级科学上册分组实验报告单实验内容:蜗牛观察实验

年级:三年级上册第二单元 课题:1、校园里的小动物 实验器材:蜗牛一只、大号餐盘、菜叶、肉片、苹果皮、鸡蛋、面包、醋、啤酒、玻璃片 实验结论:上述食物,蜗牛只吃菜叶,如用书上几种材料,蜗牛除了菜叶还喜欢黄瓜。遇到醋或者酒之类刺激物体,蜗牛会立刻缩回到壳里。 2 大中小学三年级科学上册分组实验报告单实验内容:水的毛细现象 年级:三年级上册第三单元 课题:2、神奇的水 实验器材:不同颜色的水、纸巾;粉笔、纱布、塑料片、玻璃片(2块,在其中一块玻璃片上绕上几圈透明胶);两支粗细不一样的玻璃管;

3

小,水爬升得越高。 4 大中小学三年级科学上册分组实验报告单实验内容:观察水 年级:三年级上册第三单元 课题:2、神奇的水 实验器材:滴管、一元硬币、烧杯、回形针每组一盒;戳好洞的可乐瓶一只、水盆一个;大小烧杯各一只、橡皮泥一块、50克砝码一只、细线一根。 实验类型:水的表面张力为学生操作实验,会喷射的水和会托举的水为教师演示

5

间拉着的力,以承受一点的重量。 6 会喷射的水:瓶子上方小孔的水喷射的距离近,下方小孔的水喷射的距离远,因为孔越高,受到水的压力越低,所以射不远;孔位置越低,水的压力也越大,所以射得最远。 会托举的水:开始小烧杯浮在大烧杯里,放入砝码后仍会浮在水中,但位置下降了,大烧杯里水位上升了。放得砝码越重,水位越高,小烧杯沉得越低,直至沉

《工程制图》实验报告

实验一:基本绘图命令 一、实验目的 通过本次实验,熟悉AutoCAD绘图软件的绘图界面;掌握绘图下拉菜单和工具条的使用方法;掌握AutoCAD 图层操作的方法;掌握图形文件的打开、保存和正确退出AutoCAD 系统的方法。 二、实验内容 1. 练习基本绘图命令及基本编辑命令; 2.练习基本绘图命令; 3.绘制教材中表2-3中的图例。 三、实验条件 计算机和实验指导书。 四、实验步骤 请各位同学按照上课时的过程结合表2-3书写。如: 1.点击桌面上的AutoCAD图标,打开软件; 2.熟悉各种绘图命令(可以在屏幕上截图) 3.练习直线、构造线、圆……(表2-3) 4.不存盘退出。 五、实验思考题 1.调用AUTOCAD命令的方法有哪些? 2.数据输入的方式有哪些? 六、实验体会

实验二:初始环境设置及绘图工具的使用 一、实验目的 通过本实验,掌握AutoCAD 图层操作的方法,掌握AutoCAD 各基本绘图命令的正确操作方法;掌握对象捕捉工具条的使用方法;掌握图形显示控制的方法;正确绘制二维图形等知识。 二、实验内容 1.设置绘图环境(包括图层、绘图界限、栅格、捕捉等,图层设置要求见下表,应根据需要设置相应图层,不要全部设置); 2.绘制简单平面图形P61 图2-40。 三、实验条件 计算机和实验指导书。 四、实验步骤 (由同学们填写具体过程,参见P61) 1.打开软件 2.设置绘图环境(图层请列表) 例如: 设置图层:设置4个图层,层名分别为01、02

3.绘制图形 4.存盘退出 五、实验思考题 在AutoCAD里图层的作用有哪些? 六、实验体会

计算机图形学实验(3-6)

实验三:区域填充 一、实验目的 区域填充是指先将区域内的一点(常称为种子点)赋予给定颜色,然后将这种颜色扩展到整个区域内的过程。区域填充技术广泛应用于交互式图形、动画和美术画的计算机辅助制作中。本实验采用递归填充算法或扫描线算法实现对光栅图形的区域填充。通过本实验,可以掌握光栅图形编程的基本原理和方法。 二、实验内容 掌握光栅图形的表示方法,实现种子算法或扫描线算法。通过程序设计实现上述算法。 建议采用VC++实现OpenGL程序设计。 三、实验原理、方法和手段 递归算法 在要填充的区域内取一点(X,Y)的当前颜色记为oldcolor,用要填充的颜色ne wcolor去取代,递归函数如下: procedure flood-fill(X,Y,oldcolor,newcolor:integer); begin if getpixel(framebuffer,x,y)=oldcolor then begin setpixel(framebuffer,x,y,newcolor); flood-fill(X,Y+1,oldcolor,newcolor); flood-fill(X,Y-1,oldcolor,newcolor); flood-fill(X-1,Y,oldcolor,newcolor); flood-fill(X+1,Y,oldcolor,newcolor); end end 扫描线算法 扫描线算法的效率明显高于递归算法,其算法的基本思想如下:(1)(初始化)将算法设置的堆栈置为空,将给定的种子点(x,y)压入堆栈。 (2)(出栈)如果堆栈为空,算法结束;否则取栈顶元素(x,y)作为种子点。 (3)(区段填充)从种子点(x,y)开始沿纵坐标为y的当前扫描线向左右两个方向逐个象素进行填色,其值置为newcolor,直到抵达边界为止。 (4)(定范围)以x left和x right分别表示在步骤3中填充的区段两端点的横坐标。 (5)(进栈)分别在与当前扫描线相邻的上下两条扫描线上,确定位于区间[x left,x right]内的给定区域的区段。如果这些区段内的象素的颜色值为newcolor或者boundarycolor(边界上象素的颜色值),则转到步骤2,否则取区段的右端点为种子压入堆栈,再转到步骤2继续执行。 四、实验组织运行要求 本实验采用集中授课形式,每个同学独立完成上述实验要求。

相关文档
最新文档