计算机图形学实验报告8-种子点填充

计算机图形学实验报告8-种子点填充
计算机图形学实验报告8-种子点填充

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

2016年春季学期

实验四:种子点填充算法Seed Filling

实验时间:2016年9月底

实验地点:

实验目的:掌握使用opengl 的种子点填充算法,观察改变参数对生成图形的改变(改变点的位置、

颜色等)

如果要填充的区域是以图像元数据方式给出的,通常使

用种子填充算法进行区域填充。种子填充算法的核心是

一个递归算法,都是从指定的种子点开始,向各个方向

上搜索,逐个像素进行处理,直到遇到边界。种子填充算法常用四连通域和八连通域技术进行填充操作。

从区域内任意一点出发,通过上、下、左、右四个方向到达区域内的任意像素。用这种方法填充的区域就称为四连通域;这种填充方法称为四向连通算法。

从区域内任意一点出发,通过上、下、左、右、左上、左下、右上和右下八个方向到达区域内的任意像素。用这种方法填充的区域就称为八连通域;这种填充方法称为八向连通算法。

算法的优点是非常简单,缺点是需要大量栈空间来存储相邻的点。

程序代码:

使用的运行环境是vc++6.0

#include

#include

typedef float Color[3];

//获取像素点的颜色

void getpixel(GLint x, GLint y, Color color) {

glReadPixels(x, y, 1, 1, GL_RGB, GL_FLOAT, color); //OPENGL自带

}

//画点函数

void setpixel(GLint x, GLint y) {

glBegin(GL_POINTS);

glVertex2f(x, y);

glEnd();

}

//比较颜色是否相等

int compareColor(Color color1, Color color2) {

if (color1[0] != color2[0] || color1[1] != color2[1] || color1[2] != color2[2]) { return 0; }

else { return 1; }

}

void boundaryFill4(int x, int y, Color fillColor, Color boarderColor) {

Color interiorColor;

getpixel(x, y, interiorColor);

if (compareColor(interiorColor, fillColor) == 0 && compareColor(interiorColor, boarderColor) == 0) { setpixel(x, y);

boundaryFill4(x + 1, y, fillColor, boarderColor);

boundaryFill4(x - 1, y, fillColor, boarderColor);

boundaryFill4(x, y + 1, fillColor, boarderColor);

boundaryFill4(x, y - 1, fillColor, boarderColor);

}

}

void boundaryFill8(int x, int y, Color fillColor, Color boarderColor) {

Color interiorColor, a, b, c, d;

getpixel(x, y, interiorColor);

getpixel(x + 1, y, a);

getpixel(x, y - 1, b);

getpixel(x, y + 1, c);

getpixel(x - 1, y, d);

int i = 0;

if (compareColor(a, boarderColor) == 1) i++;

if (compareColor(b, boarderColor) == 1) i++;

if (compareColor(c, boarderColor) == 1) i++;

if (compareColor(d, boarderColor) == 1) i++;

if (i <= 1) {

if (compareColor(interiorColor, fillColor) == 0 && compareColor(interiorColor, boarderColor) == 0) {

setpixel(x, y);

boundaryFill8(x+1,y,fillColor,boarderColor);

boundaryFill8(x-1,y,fillColor,boarderColor);

boundaryFill8(x,y+1,fillColor,boarderColor);

boundaryFill8(x,y-1,fillColor,boarderColor);

boundaryFill8(x-1,y+1,fillColor,boarderColor);

boundaryFill8(x-1,y-1,fillColor,boarderColor);

boundaryFill8(x+1,y+1,fillColor,boarderColor);

boundaryFill8(x+1,y-1,fillColor,boarderColor);

}

}

}

void polygon() {

glBegin(GL_LINE_LOOP);

glLineWidth(5);

//此处修改坐标,绘制多边形

glVertex2f(100, 150);

glVertex2f(150, 200);

glVertex2f(200, 200);

glVertex2f(200, 160);

glEnd();

}

void display(void) {

Color fillColor = {0.0, 1.0, 1.0};//填充颜色

Color boarderColor = {0.0, 1.0, 0.0};//边界颜色

glClear(GL_COLOR_BUFFER_BIT);

glViewport(0, 0, 500, 500);

glColor3fv(boarderColor);

polygon();

glColor3fv(fillColor);

//boundaryFill4(150, 150, fillColor, boarderColor);//设置起点坐标及颜色boundaryFill8(120, 160, fillColor, boarderColor);

glFlush();

}

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

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_SINGLE | GLUT_RED);

glutInitWindowSize(500, 500);

glutInitWindowPosition(100, 100);

glutCreateWindow("BoundaryFill1");

glClearColor(1, 1, 1, 0.0);

glMatrixMode(GL_PROJECTION);//投影模型

gluOrtho2D(0.0, 500.0, 0.0, 500.0);

glutDisplayFunc(display);

glutMainLoop();

return 0;

}

实验结果:

(更改颜色)

(更改形状)

计算机图形学实验报告

《计算机图形学》实验报告姓名:郭子玉 学号: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; }

图形学实验报告

计 算 机 图 形 学 实验指导书 学号:1441901105 姓名:谢卉

实验一:图形的几何变换 实验学时:4学时 实验类型:验证 实验要求:必修 一、实验目的 二维图形的平移、缩放、旋转和投影变换(投影变换可在实验三中实现)等是最基本的图形变换,被广泛用于计算机图形学的各种应用程序中,本实验通过算法分析以及程序设计实验二维的图形变换,以了解变换实现的方法。如可能也可进行裁剪设计。 二、实验内容 掌握平移、缩放、旋转变换的基本原理,理解线段裁剪的算法原理,并通过程序设计实现上述变换。建议采用VC++实现OpenGL程序设计。 三、实验原理、方法和手段 1.图形的平移 在屏幕上显示一个人或其它物体(如图1所示),用交互操作方式使其在屏幕上沿水平和垂直方向移动Tx和Ty,则有 x’=x+Tx y’=y+Ty 其中:x与y为变换前图形中某一点的坐标,x’和y’为变换后图形中该点的坐标。其交互方式可先定义键值,然后操作功能键使其移动。 2.图形的缩放 在屏幕上显示一个帆船(使它生成在右下方),使其相对于屏幕坐标原点缩小s倍(即x方向和y方向均缩小s倍)。则有: x’=x*s y’=y*s 注意:有时图形缩放并不一定相对于原点,而是事先确定一个参考位置。一般情况下,参考点在图形的左下角或中心。设参考点坐标为xf、yf则有变换公式x’=x*Sx+xf*(1-Sx)=xf+(x-xf)*Sx y’=y*Sy+yf*(1-Sy)=yf+(y-yf)*Sy 式中的x与y为变换前图形中某一点的坐标,x’和y’为变换后图形中该点的坐标。当Sx>1和Sy>1时为放大倍数,Sx<1和Sy<1时为缩小倍数(但Sx和Sy

java实验报告完整版

实验报告 (计算机与信息工程学院实验中心) 学期: 2014-2015 课程名称:《Java程序设计实验》 班级:信息1202 姓名:方逸梅 学号: 31 指导老师:费玉莲

《Java程序设计》 独立实验教学安排 一、实验的教学方式、安排及实验环境 (一)教学方式 对照本课程的实验教材,实验一至实验十一,由教师提示实验原理、方法、步骤等内容,在教师的指导下,学生独立完成程序设计及调试工作。实验十二的内容由学生自行设计完成。 (二)教学安排 学时数:30课时 学时安排:每次实验3学时,从学期第五周开始,共十次上机实验。 (三)实验环境 实验环境为JDK 。 (四)具体安排 地点:信息大楼实验室。 辅导:每个班次一名辅导老师,原则上由任课老师担任。 登记:实验完成,由辅导老师登记实验纪录。 学生:实验做完,完成实验报告内容,并在学期末上交实验册。 老师:批改实验,成绩与平时成绩一起占期末的30%。 二、实验的具体内容和要求 见实验报告。

浙江工商大学 计算机与信息工程学院实验报告(1)日期:地点:成绩: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 实验目的、实验原理和内容: 一、实验目的:熟悉Java开发环境及简单程序Java设计。 二、实验原理:SDK 的下载与安装,设置环境变量,安装java 虚拟机,使用Eclipse,编译Java 源程序,运行Java 程序。 三、实验内容及要求: 1.下载、安装并设置Java SDK 软件包。 2.熟悉Eclipse 编辑软件。 3.掌握运行Java 程序的步骤。 4.分别编写Application和Applet程序,显示字符串”Hello Java!欢迎使用!”。 要求:请同学把预备知识、步骤、程序框图、调试好的程序及存在的问题写在下面(不够可以附页)。 程序一 public class hello { public static void main(String[] args) { for(int i=0;i<=4;i++) { "Hello java! 欢迎使用!"); } }

计算机图形学实验报告 (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))

大学物理实验报告书(共6篇)

篇一:大学物理实验报告1 图片已关闭显示,点此查看 学生实验报告 学院:软件与通信工程学院课程名称:大学物理实验专业班级:通信工程111班姓名:陈益迪学号:0113489 学生实验报告 图片已关闭显示,点此查看 一、实验综述 1、实验目的及要求 1.了解游标卡尺、螺旋测微器的构造,掌握它们的原理,正确读数和使用方法。 2.学会直接测量、间接测量的不确定度的计算与数据处理。 3.学会物理天平的使用。 4.掌握测定固体密度的方法。 2 、实验仪器、设备或软件 1 50分度游标卡尺准确度=0.02mm 最大误差限△仪=±0.02mm 2 螺旋测微器准确度=0.01mm 最大误差△仪=±0.005mm 修正值=0.018mm 3 物理天平 tw-0.5 t天平感度0.02g 最大称量 500g △仪=±0.02g 估读到 0.01g 二、实验过程(实验步骤、记录、数据、分析) 1、实验内容与步骤 1、用游标卡尺测量圆环体的内外径直径和高各6次; 2、用螺旋测微器测钢线的直径7次; 3、用液体静力称衡法测石蜡的密度; 2、实验数据记录表 (1)测圆环体体积 图片已关闭显示,点此查看 (2)测钢丝直径 仪器名称:螺旋测微器(千分尺)准确度=0.01mm估读到0.001mm 图片已关闭显示,点此查看 图片已关闭显示,点此查看 测石蜡的密度 仪器名称:物理天平tw—0.5天平感量: 0.02 g 最大称量500 g 3、数据处理、分析 (1)、计算圆环体的体积 1直接量外径d的a类不确定度sd ,sd=○ sd=0.0161mm=0.02mm 2直接量外径d的b类不确定度u○ d. ud,= ud=0.0155mm=0.02mm 3直接量外径d的合成不确定度σσ○ σd=0.0223mm=0.2mm 4直接量外径d科学测量结果○ d=(21.19±0.02)mm d = 5直接量内径d的a类不确定度s○

观察种子的结构

《观察种子的结构》教学设计 【教材分析】 《观察种子的结构》是鲁教版六年级下册第一章《生物圈中有哪些绿色植物》第三节第一课时的教学内容。学生虽然对种子有一定的认识,但对种子的结构却了解甚少。因此,教师应多给学生搭建实验探究的平台,按“学习观察菜豆种子和玉米种子的结构-→比较菜豆种子和玉米种子的异同-→归纳出种子的结构”的顺序,组织学生自主、合作、探究。让学生在愉悦的氛围中,培养技能,学会知识,体验成功。 【学情分析】 通过前一阶段的学习,学生已经初步形成了结构与功能相适应的观点。所以,必须充分利用学生已有知识,通过学生的观察、讨论、展示等多种方式,促使学生进一步巩固结构与功能相适应的观点,并利用这一观点来更好地掌握种子的结构及各部分的功能,减少单纯的机械记忆。 【教学目标】 六年级的学生求知欲强,喜欢自己动手主动获取知识;因此,教师应为学生提供探究的机会,让学生通过自主探究,获得相关知识。符合从感性到理性、由具体到抽象的认识规律,有利于培养学生的观察能力、思维能力,从而使学生较易地掌握本节的知识。因此,根据新课程标准和学生已有的认知水平,本节课我制定目标如下: 一、知识目标 1、描述菜豆和玉米种子的各部分结构和功能。 2、区分菜豆和玉米种子结构的相同点和不同点。 3、通过实验归纳出种子的一般结构。 二、能力目标 1、学会解剖和观察菜豆和玉米种子,记录观察种子的形态结构特征,培养学生的动手能力、观察能力。 2、通过对比菜豆和玉米种子的异同,培养学生对比归纳的能力和思维能力。 3、通过小组活动培养学生的合作意识。 三、情感目标

1、通过学习种子的结构,向学生渗透生物体的结构和功能相适应的观点。 2、愿意与他人交流,认同交流与合作的重要性,有主动与他人合作的精神。 3、通过观察实验,培养学生认真严肃和实事求是的科学态度,具有一定的探索精神和创新意识。 【教学重点】: 运用观察的方法识别玉米种子和菜豆种子的结构以及两者的相同点和不同点。 【教学难点】: 玉米种子的结构的识别和结构特点。玉米种子的子叶位置和功能。 【教学方法】 种子的结构是本节的重点,也是学生了解生物的生活所必须的。通过本节课的学习,要求学生能够准确认识种子的结构,特别是胚的组成,并理解种子是如何萌发成幼苗的。所以本课采取同步教学法,让学生边观察,边学习。通过自主学习、同伴互助、教师引领,让学生掌握种子的结构。从学生的生活实际出发,本节课选用了菜豆种子和玉米种子做观察材料,这样可以为后面学习果实和种子的形成做好铺垫。 【教学准备】: 1、教师准备: ①观察种子的结构和探究菜豆子叶及玉米胚乳功能的相关实验用品。 (培养皿、解剖刀、解剖针、镊子、放大镜、稀释的碘液、滴管) ②制作教学PPT投影片。 ③视频: 自然界中各种各样的种子视频; 观察菜豆种子的操作过程视频; 观察玉米种子的操作过程视频;

计算机图形学实验报告

目录

实验一直线的DDA算法 一、【实验目的】 1.掌握DDA算法的基本原理。 2.掌握DDA直线扫描转换算法。 3.深入了解直线扫描转换的编程思想。 二、【实验内容】 1.利用DDA的算法原理,编程实现对直线的扫描转换。 2.加强对DDA算法的理解和掌握。 三、【测试数据及其结果】 四、【实验源代码】 #include

#include #include #include GLsizei winWidth=500; GLsizei winHeight=500; void Initial(void) { glClearColor(1.0f,1.0f,1.0f,1.0f); glMatrixMode(GL_PROJECTION); gluOrtho2D(0.0,200.0,0.0,150.0); } void DDALine(int x0,int y0,int x1,int y1) { glColor3f(1.0,0.0,0.0); 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++) { glPointSize(3); glBegin(GL_POINTS); glV ertex2i(int(x+0.5),(int)(y+0.5)); glEnd(); x+=xIncre; y+=yIncre; } } void Display(void) { glClear(GL_COLOR_BUFFER_BIT); DDALine(100,100,200,180); glFlush(); }

图形学实验报告

山东建筑大学测绘地理信息学院 实验报告 (2016—2017学年第一学期) 课程:计算机图形学 专业:地理信息科学 班级:地信141 学生姓名:王俊凝 学号:20140113010 指

实验一直线生成算法设计 一、实验目的 掌握基本图形元素直线的生成算法,利用编程语言C分别实现直线和圆的绘制算法。 二、实验任务 在TurboC环境下开发出绘制直线和圆的程序。 三、实验仪器设备 计算机。 四、实验方法与步骤 1 运行TurboC编程环境。 2 编写Bresenham直线绘制算法的函数并进行测试。 3 编写中点圆绘制算法的函数并进行测试。 4 增加函数参数,实现直线颜色的设置。 提示: 1. 编程时可分别针对直线和圆的绘制算法,设计相应的函数,例如void drawline(…)和void drawcircle(…),直线的两个端点可作为drawline的参数,圆的圆心和半径可作为drawcircle的参数。 2. 使用C语言编写一个结构体类型用来表示一个点,结构体由两个成员构成,x和y。这样,在向函数传入参数时,可使用两个点类型来传参。定义方法为:

typedef struct{ int x; int y; }pt2; 此处,pt2就是定义的一个新的结构体数据类型,之后就可用pt2来定义其他变量,具体用法见程序模板。 3. 在main函数中,分别调用以上函数,并传入不同的参数,实现对直线的绘制。 4. 线的颜色也可作为参数传入,参数可采用TurboC语言中的预设颜色值,具体参见TurboC图形函数。 五、注意事项 1 代码要求正确运行,直线和圆的位置应当为参数,实现可配置。 2 程序提交.c源文件,函数前和关键代码中增加注释。 程序模板 #include #include typedef struct{ int x; int y; }pt2; /*declare your drawing functions.*/ void drawline(pt2 startpt,pt2 endpt,int color); void drawcircle(pt2 centerpt,int radius,int color); void circlePlotPoints(pt2 centerpt,int x,int y,int color); int main() { int color,radius;

化学实验报告完整版

化学实验报告 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】

化学实验报告 化学是一门以实验为基础的学科。化学上的许多理论和定律都是从实验中发现归纳出来的。同时,化学理论的应用、评价也有赖于实验的探索和检验。虽然到了近代乃至现代,化学的飞速进步已经产生了各种新的研究方法,但是,实验方法仍然是化学不可缺少的研究手段。新课程改革将科学探究作为突破口,科学探究不但是一种重要的学习方式,同时也是中学化学课程的重要内容,它对发展学生的科学素养具有不可替代的作用。而化学实验是科学探究的重要形式。 用化学实验的方法学习化学,既符合化学的学科特点也符合学生学习化学的认识特点,是化学教学实施素质教育的基本手段。新课程标准提倡学生独立进行或合作开展化学实验研究。通过化学实验能激发学生的学习兴趣,帮助学生通过使用探究形成化学概念、理解化学基础理论、掌握化学知识和技能,培养学生的科学态度和价值观,帮助学生发展思维能力和训练实验技能,从而达到全面提高学生的科学素养的目的。 一、对新课程标准下的中学化学实验的认识 《普通高中化学课程标准》明确了高中化学课程的基本理念:立足于学生适应现代生活和未来发展的需要,着眼于提高21世纪公民的科学素养,构建“知识与技能”、“过程与方法”、“情感态度与价值观”相融合的高中化学课程目标体系。“知识与技能”即过去的“双基”;“过程与方法”是让学生掌握学习的方法,学会学习;“情感态度与价值观”是人文关怀的体现。所以新的课程理念的核心是“让学生在知识探索的过程中,在知识、学法、人文等方面得到发展。”其中第5条特别强调:“通过以化学实验为主的多种探究活动,使学生体验科学研究的过程,激发学习化学的兴趣,强化科学探究的意识,促进学习方式的转变,培养学生的创新精神和实践能力。”[1]高中化学课程由2个必修模

计算机图形学 有效边表填充算法实验报告

实验题目:实验二有效边表填充算法 1.实验目的: 设计有效边表结点和边表结点数据结构 设计有效边表填充算法 编程实现有效边表填充算法 2.实验描述: 下图1 所示多边形覆盖了12 条扫描线,共有7 个顶点和7 条边。7 个顶点分别为:P0(7,8),P1(3,12),P2(1,7),P3(3,1), P4(6,5), P5(8,1), P6(12,9)。在1024×768 的显示分辩率下,将多边形顶点放大为P0(500,400),P1(350,600),P2(250,350),P3(350,50), P4(500,250), P5(600,50), P6(800,450)。请使用有效边表算法填充该多边形。 图1示例多边形

图2 屏幕显示多边形 3.算法设计: (1)建立AET和BUCKET类; (2)初始化桶,并在建立桶结点时为其表示的扫描线初始化为带头结点的链表; (3)对每个桶结点进行循环,将桶内每个结点的边表合并为有效边表,并进行有效边表循环; (4)按照扫描线从小到大的移动顺序,计算当前扫描线与多边形各边的交点,然后把这些交点按X值递增的顺序进行排序,配对,以确定填充区间; (5)用指定颜色点亮填充区间内的所有像素,即完成填充工作。 4.源程序: 1)//AET.h class AET { public: AET(); virtual ~AET(); double x; int yMax; double k;//代替1/k AET *next; }; //AET..cpp AET::AET() {

} AET::~AET() { } 2) //Bucket.h #include "AET.h" class Bucket { public: Bucket(); virtual ~Bucket(); int ScanLine; AET *p;//桶上的边表指针 Bucket *next; }; // Bucket.cpp Bucket::Bucket() { } Bucket::~Bucket() { } 3)//TestView.h #include "AET.h"//包含有效边表类 #include "Bucket.h"//包含桶类 #define Number 7//N为闭合多边形顶点数,顶点存放在整型二维数组Point[N]中class CTestView : public CView { 。。。。。。。。。 public: void PolygonFill();//上闭下开填充多边形 void CreatBucket();//建立桶结点桶 void Et();//构造边表 void AddEdge(AET *);//将边插入AET表 void EdgeOrder();//对AET表进行排序

(完整版)初中生物实验报告单.docx

实验报告单 实验时间年月日(星期)班级学生姓名 实验内容练习使用显微镜 说出显微镜的主要结构的名称和用途。 实验目的练习使用显微镜,学会规范操作显微镜。 尝试使用低倍镜观察到清晰的物像。 实验器材显微镜、写有“上”字的玻片、擦镜纸、纱布。 实验报告单实验时间年月日(星期)班级学 实验内容观察人和动物细胞的基本 学会制作人口腔上皮细胞临时装片。 实验目的用显微镜观察动物细胞的形态结构。 初步学会画细胞结构图。 显微镜、载玻片、盖玻片、0.9%生理盐水、碘液、 实验器材 吸水纸、其他动物细胞的永久装片。 实验步骤 1、取镜安放实 2、对光 3、放置玻片验 标本 步 4、观察 骤 实验步骤 5、收放 结 论 实验过程讨论分析 取显微镜时,左手握 显微镜是贵重仪器,双手取镜是为了。 住,右手托 安放显微镜略偏左的目的是: 住。安放显微镜应略 。 偏。 转动转换器,使低倍物镜对准当外界光源暗时,应选用光圈对准通光孔,同时选 孔。用反光镜。 把要观察的玻片放在 尽量使要观察的标本正对通光孔中央,这样物像容易 上,尽量使要观察的标本正对 在中找到。 中央。 转动粗准焦螺旋,使镜筒缓缓 眼睛应从侧面注视的目的是:避免 。 降,直至为 镜筒上升切忌太快,因为只有在 止,眼睛应从侧面注 位置上,物象才清晰。若镜筒上升太快,极易错过 视。 焦距。 时针转动粗准焦螺旋, 要将视野右下方的物像移到视野中央,则推移装片的 使镜简缓缓上升直到看清物像为 方向是。 止。再转动 “上”字装片在显微镜下呈图像。说明显微镜成像 准焦螺旋,使物像更清晰。 是。 实验过程讨论分析 实验后,把显微镜擦拭干净。 转动转换器使两个物镜。镜 筒降至处,反光镜放在 实 验 成 绩 实验步骤实验过程 为什 ①擦干净载玻片和盖玻片。 ②在载玻片中央,滴一滴 碎屑 实浓度一般是。 抹要均 1、制作人口腔 ③用消毒牙签的一端在口腔 侧壁轻刮几下。 验上皮细胞临时装避免 片。 ④把牙签上附有碎屑的一端, 放在载玻片的水滴中涂抹几下。 步⑤盖上盖玻片。 气泡与 ⑥在盖玻片一侧加在 骤 另一侧用吸水纸吸。 2、是微镜观察 人口腔上皮细胞 实验步骤实验过程讨论分 按生物绘图要求,画出人体口腔上皮细胞的结构 结图,并注明各部分结构的名称。实 验 成 论绩 指导教师: _________________实验教 指导教师: _________________实验教师:_______________

计算机图形学实验报告

计算机图形学 实验报告 姓名:谢云飞 学号: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)掌握读、写图像的基本方法。 2)掌握MATLAB语言中图像数据与信息的读取方法。 3)理解图像灰度变换处理在图像增强的作用。 4)掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方 法。 二、实验内容与要求 1.熟悉MATLAB语言中对图像数据读取,显示等基本函数 特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot()函数、Figure()函数。 1)将MATLAB目录下work文件夹中的forest.tif图像文件读出.用到imread, imfinfo 等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。将这个图像显示出来(用imshow)。尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。 2)将MATLAB目录下work文件夹中的b747.jpg图像文件读出,用rgb2gray() 将其 转化为灰度图像,记为变量B。 2.图像灰度变换处理在图像增强的作用 读入不同情况的图像,请自己编程和调用Matlab函数用常用灰度变换函数对输入图像进行灰度变换,比较相应的处理效果。 3.绘制图像灰度直方图的方法,对图像进行均衡化处理 请自己编程和调用Matlab函数完成如下实验。 1)显示B的图像及灰度直方图,可以发现其灰度值集中在一段区域,用 imadjust函 数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰

度直方图与原灰度直方图的区别。 2) 对B 进行直方图均衡化处理,试比较与源图的异同。 3) 对B 进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。 图1.1 分段线性变换函数 三、实验原理与算法分析 1. 灰度变换 灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。 1) 图像反转 灰度级范围为[0, L-1]的图像反转可由下式获得 r L s --=1 2) 对数运算:有时原图的动态范围太大,超出某些显示设备的允许动态范围, 如直接使用原图,则一部分细节可能丢失。解决的方法是对原图进行灰度压缩,如对数变换: s = c log(1 + r ),c 为常数,r ≥ 0 3) 幂次变换: 0,0,≥≥=γγc cr s 4) 对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求 局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸: 其对应的数学表达式为:

大学计算机实验报告范例(完整版)

报告编号:YT-FS-1587-65 大学计算机实验报告范例 (完整版) After Completing The T ask According To The Original Plan, A Report Will Be Formed T o Reflect The Basic Situation Encountered, Reveal The Existing Problems And Put Forward Future Ideas. 互惠互利共同繁荣 Mutual Benefit And Common Prosperity

大学计算机实验报告范例(完整版) 备注:该报告书文本主要按照原定计划完成任务后形成报告,并反映遇到的基本情况、实际取得的成功和过程中取得的经验教训、揭露存在的问题以及提出今后设想。文档可根据实际情况进行修改和使用。 一、实验题目 文件和文件夹的管理 二、实验目的 1.熟悉Windows XP的文件系统。 2.掌握资源管理器的使用方法。 3.熟练掌握在Windows XP资源管理器下,对文件 (夹)的选择、新建、移动、复制、删除、重命名的 操作方法。 三、实验内容 1.启动资源管理器并利用资源管理器浏览文件。 2.在D盘创建文件夹 3.在所创建文件夹中创建Word文件。 4.对所创建文件或文件夹执行复制、移动、重命

名、删除、恢复、创建快捷方式及设置共享等操作。 四、实验步骤 (一)文件与文件夹管理 1.展开与折叠文件夹。右击开始,打开资源管理器,在左窗格中点击“+”展开,点击“—”折叠 2.改变文件显示方式。打开资源管理器/查看,选择缩略、列表,排列图标等 班/王帅、王鹏 3.建立树状目录。在D盘空白处右击,选择新建/文件夹,输入经济贸易学院,依次在新建文件夹中建立经济类1103 4..创建Word并保存。打开开始/程序/word,输入内容。选择文件/另存为,查找D盘/经济贸易学院/1103班/王帅,单击保存 5.复制、移动文件夹 6.重命名、删除、恢复。右击文件夹,选择重命名,输入新名字;选择删除,删除文件 7.创建文件的快捷方式。右击王帅文件夹,选择

观察种子的结构教案

种子的结构 一教学目标 1.认识种子的主要结构,描述玉米种子和菜豆种子的相同点和不同点。 2.通过解剖观察种子的内部结构,学生在此过程中提高实验能力,学会简单的观察方法,以培养自身的观察能力。 3.通过学习种子的结构, 二教学重点:种子的结构及各部分的功能 三教学难点:描绘种子的结构 四教学用具: 1、浸泡过的菜豆种子,玉米种子,放大镜,解 剖刀,镊子,碘液、滴管 五教学过程 (一)创设情境导入新课 不同种子植物的种子形态大小颜色相同么?(不同)它们却有相同的结构。 检查实验器材(种子,放大镜,刀片,稀碘液,滴管)实验注意事项①、在解剖和观察时,按照由外向内的顺序,先观察形态后观察结构。

②、解剖时以不损坏种子的结构为原则,观察时要仔细、勤动手、巧动脑、善动笔。 A菜豆种子的结构 1观察菜豆种子的外部形状:外部结构——最外是种皮、内侧凹陷处是种脐,种脐处不易观察有个小孔是种孔,是种子萌发时吸水的地方,用手捏一下看结果。 2观察完种子的外部,我们观察到菜豆种子的有哪些内部结构。 B种子的结构功能 1:种皮具有怎样的作用呢?答:保护内部结构。总结:也就是保护胚芽、胚轴、胚根、子叶。这四个结构是称为胚。种皮保护胚,说明胚更重要。胚将来发育成新的植物体。 总结:菜豆种子由种皮和胚芽、胚轴、胚根、子叶组成。老师板书 2、猜想:胚中哪部分占最大体积?(子叶)为什么?(子叶中储存着营养物质,供种子萌发时所需。)这就是子叶的功能。 类比菜豆种子结构的学习方法观察玉米种子的结构。按从外向内的顺序,观察玉米种子的形状、种皮和果皮。 A玉米种子的结构

B玉米种子的结构功能 玉米种子的营养物质储存在什么部位?你怎样知道的?(胚乳里,根据遇到碘液变蓝知道的) (五)整合提升 A:菜豆种子和玉米种子的结构异同点。 B:种子胚中各个结构的发育 问:胚将来发育成新的植物体。那么,构成胚的胚芽、胚轴、胚根分别发育成植物体的哪些部位?请根据这些结构的名称和部位猜想。 总结:胚芽发育成茎和叶,胚根发育成根,胚轴发育成连接茎和根的部位。

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

一、实验目的 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);

java实验报告完整版

实验报告 (计算机与信息工程学院实验中心) 学期: 2014-2015 课程名称: 《Java程序设计实验》 班级: 信息1202 姓名: 方逸梅 学号: 1212100231 指导老师: 费玉莲 《Java程序设计》 独立实验教学安排 一、实验的教学方式、安排及实验环境 (一)教学方式 对照本课程的实验教材,实验一至实验十一,由教师提示实验原理、方法、步骤等内容,在教师的指导下,学生独立完成程序设计及调试工作。实验十二的内容由学生自行设计完成。 (二)教学安排 学时数:30课时 学时安排:每次实验3学时,从学期第五周开始,共十次上机实验。 (三)实验环境 实验环境为JDK 1、6。

(四)具体安排 地点:信息大楼实验室。 辅导:每个班次一名辅导老师,原则上由任课老师担任。 登记:实验完成,由辅导老师登记实验纪录。 学生:实验做完,完成实验报告内容,并在学期末上交实验册。 老师:批改实验,成绩与平时成绩一起占期末的30%。 二、实验的具体内容与要求 见实验报告。

浙江工商大学 计算机与信息工程学院实验报告(1)日期:地点:成绩: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━实验目的、实验原理与内容: 一、实验目的:熟悉Java开发环境及简单程序Java设计。 二、实验原理:SDK 的下载与安装,设置环境变量,安装java 虚拟机,使用Eclipse,编译Java 源程序,运行Java 程序。 三、实验内容及要求: 1. 下载、安装并设置Java SDK 软件包。 2. 熟悉Eclipse编辑软件。 3.掌握运行Java 程序的步骤。 4.分别编写Application与Applet程序,显示字符串”Hello Java!欢迎使用!”。 要求:请同学把预备知识、步骤、程序框图、调试好的程序及存在的问题写在下面(不够可以附页)。 程序一 public class hello { public static void main(String[] args) { for(int i=0;i<=4;i++) { System、out、println("Hello java! 欢迎使用!"); } } } 结果示意图1

计算机图形学实验报告

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

实验报告要求和格式完整版

编号:TQC/K633 实验报告要求和格式完整 版 Daily description of the work content, achievements, and shortcomings, and finally put forward reasonable suggestions or new direction of efforts, so that the overall process does not deviate from the direction, continue to move towards the established goal. 【适用信息传递/研究经验/相互监督/自我提升等场景】 编写:________________________ 审核:________________________ 时间:________________________ 部门:________________________

实验报告要求和格式完整版 下载说明:本报告资料适合用于日常描述工作内容,取得的成绩,以及不足,最后提出合理化的建议或者新的努力方向,使整体流程的进度信息实现快速共享,并使整体过程不偏离方向,继续朝既定的目标前行。可直接应用日常文档制作,也可以根据实际需要对其进行修改。 实验报告要求 1. 认真完成实验报告,报告要用中国海洋大学实验报告纸,作图要用坐标纸。 2. 报告中的电路图、光路图、表格必须用直尺画,数据使用钢笔、圆珠笔不得使用铅笔。 3. 应在理解的基础上简单扼要的书写实验原理,不提倡大段抄书。 4. 应结合具体的实验现象和问题进行讨论。 实验报告格式

相关文档
最新文档