当前位置:文档之家› 《数据分析》实验报告三

《数据分析》实验报告三

《数据分析》实验报告三
《数据分析》实验报告三

《数据分析》实验报告三

————————————————————————————————作者: ————————————————————————————————日期:

图形学实验报告

计 算 机 图 形 学 实验指导书 学号: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

计算机图形学实验报告

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

小学3-6年级科学实验报告单上下册汇总(苏教版).

苏教版三----六年级科学下册实验报告单汇总 苏教版小学科学三年级下册实验一览表 单元课题实验名称实验材料 实验 类型周次 第一单元 土壤与生命2了解土壤 用实验证明土壤里 含有空气 烧杯、玻璃棒、土壤、水 观察 1 用实验证明土壤里 含有腐殖质和水 酒精灯、三脚架、石棉网、蒸 发皿、玻璃片、烧杯、土壤 演示 1 3肥沃的土壤 做肥料袋袋子、土、水果皮、菜叶、水自制 2 模拟水土流失实验 喷壶、水、平盘、有植被土壤 和无植被土壤各一块 演示 2 第二单元 植物的一生1果实和种子 探究种子里面有什 么 用水泡过的蚕豆、放大镜、镊 子 分组 4 2根和茎探究茎的作用芹菜的茎、红墨水、烧瓶 观察 4 第三单元 固体和液体1认识固体 研究固体的共同性 质 桌、直尺、玻璃、红领巾等学 生自己身边的物品 观察 7 探究固体的混合前 后重量和体积的变 化情况 黄豆、米、面粉、天平、量筒 分组 7 2把固体放到 水里 探究固体的沉浮 蜡烛、小瓶盖、粉笔、布、水 槽、树叶、苹果、铁钉 分组 8 3认识液体 研究同体积液体的 重量 油、水、蜂蜜、量筒、天平 分组 9 4把液体倒进 水里 研究液体的沉浮油、水、蜂蜜、烧杯演示9 研究液体混合前后 重量和体积的变化 情况 酒精、水、天平、量筒(量杯) 演示 9 5使沉在水里 的物体浮起来 探究使物体上浮的 办法 水槽、盐、糖、味精、玻璃棒、 汤匙 分组 10 第四单元关心天气2气温有多高测量气温温度计分组12 3雨下得多大制作雨量筒大饮料瓶、剪刀、硬纸片制作13 4今天刮什么 风 制作风向标 硬纸板、大头针、泡沫板、小 珠子 制作15

小学科学三年级下册演示实验报告单 实验内容:观察研究土壤 年级:三年级下册第一单元 课题:2、了解土壤 实验器材:湿土块、含较多腐殖质的土壤、餐巾纸、烧杯、水、三角架、石棉网、酒精灯、蒸发皿 实验类型:学生操作实验和教师演示实验 实验步骤操作要点 1.分组研究土壤成分1、让学生用餐巾纸包住刚从花圃里挖出的土块(不要太干燥),然后用手使劲握一握,观察餐巾纸的变化。如果观察不到水迹,说颜色变黄了等等,可让学生观察餐巾纸的背面,一般会有明显的潮湿斑迹。 2、将刚才的土块放入水中,引导学生仔细观察土壤刚放进水里和过了一会儿的发现与变化。 3、用玻璃棒沿着同一方向进行搅拌,引导学生边搅拌边观察,停止搅拌,耐心观察3——5分钟。 4、学生分组实验,用文字或图示的方法记录实验现象。 5、交流实验现象。(搅拌之后,可能时间较短,难以进行沉淀,教师可以将自己事先做好的一杯拿出来提供给学生观察,让学生有个完整的认识。) 2. 演示研究土壤成分1、将石棉网放在三角架上,上面放上盛有土壤的蒸发皿(选用腐殖质较多的黑色土壤),下面用酒精灯点燃加热。 2、酒精灯使用:(1)使用前,酒精不超过瓶体的2/3。(2)打开灯帽,点燃火柴由下往右上方在灯芯上划过,使灯芯点燃。(3)用外焰加热。(4)熄灭酒精灯时,不要吹灭,用灯帽盖上灯芯,使火焰熄灭,如果是玻璃灯帽,还需提起灯帽再轻轻放下,以免会被吸紧。 3、持续加热一段时间,让学生观察变化,等到有白烟冒出后,可以请学生代表上来闻一闻,闻的时候提醒学生不能直接去闻,应该用手扇一些白烟到旁边闻。 4、交流实验现象。

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

大学实验报告 学院: 计算机科学与信息专业:计算机科学与技术班级:计科101 喻志华学号1008060024 实验组实验时间2013/3/30 指导教师吴云成绩实验项目名称圆和椭圆的生成算法 实 验目的 根据圆的Brensenham算法、中点算法和中点改进算法,以及椭圆的中点算法,编写程序,实现圆与椭圆的绘制。 实 验要求1.圆、椭圆的中点算法 2.圆的优化后的算法:二次差分法 3.编制源程序; 4.对于一些较为重要的算法,可以摘抄在报告中; 实验原理 1.中点算法 A.构造函数 F(X,Y)=X2+Y2-R2,则可知 F(M)< 0:M在圆,取T F(M)≥ 0:M在圆外,取 B B.第一个M点的值有: (一)DM0 = F(M0)= F(1,R-0.5)= 12+(R-0.5)2-R2=1.25-R 若 D=d-0.25 则判别式d<0等价于D<-0.25。即DM0=1-R与DM0=1.25-R等价。 (二)如果dM<0,表示下一中点M在圆,选择T点,且: dMT= F(MT)= F(xp+2,yp-0.5) 则: ?dMT= dMT - dM=2xp+3 (三)如果dM>0,表示下一中点M在圆外,选择B点,且: dMB= F(xMB,yMB)= F(xp+2,yp-1.5)则: ?dMB= dMB - dM=2xp-2yp +5 2.中点改进算法——增量算法

设圆上某点I(xi,yi);则下一点为J点,坐标为(xi+1,yj)dT=2xp+3; dB=2(xp-yp)+5; d1=d2=0; 因为x每次加1,所以 dj点 A.将增量?dMT=2(xi+1)+3=dT+2=dT+d1; (d1=d1+2) B.将增量?dMB=2(xi+1)-2yj+5=dB+d1+d2; dj较之于di,x部分增量增加相同的量,y部分两种情况 1.取T点,yj不减1,y部分增量的增量无变化 2.取B点,yj减1,y部分增量的增量加 2. 所以当y—时,d2=d2+2 因此,d<0, d=d+dT+d1; d>0, d=d+dB+d1+d2; 3.Brensenham算法 1.基本思想: 当|D(Ti)|≥|D(Bi)|,则Bi更接近于圆周,选择Bi; 当|D(Ti)|<|D(Bi)|,则Ti更接近于圆周,选择Ti; 若令D=|D(Ti)|-|D(Bi)| 则D≥0,取Bi; D<0,取Ti; 2.三种情况 A.设x0=0,y0=R;则T1为(1,R),B1为(1,R-1), d1=(12+R2-R2)+[(12+(R-1)2-R2]=3-2R B.若di<0,则取Ti作为下一点,即Pi(xi-1+1,yi-1); d(i+1)=di+4xi-1+6 C.若di≥0,则取Bi作为下一点,即Pi(xi-1+1,yi-1-1), d(i+1)=di+4(xi-1-yi-1)+10 4.椭圆的中点算法

三年级科学下册实验报告

三年级科学下册实验报告 实验名称: 探究小车运动的快慢与推力和拉力大小的关系实验材料: 小车、计时器、尺子、垫圈、棉线 实验过程 : 1、用1个垫圈的拉力~测试小车走过50厘米距离使用的时间。 2、用3个垫圈的拉力~测试小车走过50厘米距离使用的时间。 3、用5个垫圈的拉力~测试小车走过50厘米的距离使用的时间。实验现象: 1、1个垫圈的拉力用 ( ) 秒。 2、2个垫圈的拉力用, ,秒。 3、5个垫圈的拉力用, ,秒。 实验结论: 小车运动的快慢与推力和拉力的大小有关系~推力和拉力越大~小车运动的越快。 实验名称: 探究摩擦力的大小与什么因素有关系 实验材料: 斜面、木块、棉线、铅笔盒、书毛巾实验目的: 认识摩擦力的大小与什么因素有关系 实验过程 : 1、把木块先后放在粗糙和光滑的斜面上~观察下滑的快、慢。 2、用线拉铅笔盒~在铅笔盒上面放数量不同的书~体验一下手有什么感觉。 实验现象: 1、木块在光滑的木板上下滑的快~在粗糙的木板上下滑的慢。 2、铅笔盒上面放的书越多~手用得力越大。 实验结论:

1、摩擦力的大小与接触面的光滑程度有关系。物体表面越粗糙~摩擦就越大。物体表面光滑~摩擦力小。 2、摩擦力的大小与物体的轻重有关系。被拉物体重~摩擦力大。被拉物体轻~摩擦力小。 实验名称: 探究杠杆尺平衡的方法 实验材料: 杠杆尺及支架、钩码、 实验目的: 能通过观察、实验等方式知道杠杆尺的平衡方法实验过程 1、组装杠杆尺~在左边第二格挂2个钩码~然后在右边第二个格挂 几个钩码~杠杆尺能平衡吗, 2、在左边第二格挂2个钩码~然后在右边第一个格挂几个钩码~杠杆尺才能平衡, 3、在左边第二个格挂2个钩码~然后在右边第四个格可以挂几个钩码~杠杆尺才能平衡, 实验现象: 1、在右边第二格挂两个。 2、在右边第二格挂四个。 3、在右边第四格挂一个。 实验结论:杠杆尺平衡时不仅与所挂钩码的数量有关系~还与钩码到支点处的距离有关系。 实验名称: 探究弹簧的弹力 实验材料: 弹簧、橡皮筋、玻璃球、圆珠笔 实验目的: 能通过探究活动感知弹簧的弹性与弹力实验过程 : 1、两手握住弹簧用力向两边拉~慢慢减小拉力~观察看到的现象。 2、把圆珠笔的顶端按在桌面上松手看到什么现象,

图形学实验报告

山东建筑大学测绘地理信息学院 实验报告 (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;

三年级科学下册实验报告单

实验一、温度和温度计 活动1:感受1号杯和2号杯里水的冷热 1号杯水() 2号杯水() 活动2:观察温度计 .观察常用液体温度计的主 要构造。 你观察温度计上有摄氏度 (℃)的标记吗? 你观察温度计上每一小格表 示多少? 最高()最低() 你观察温度计的最高温度和 最低温度是多少? 实验现象温度计里面的液柱热了就会上升,冷了就会下降。 活动3:下面的温度你会读和写吗? 28摄氏度写作: 20摄氏度写作: 零下5摄氏度写作: -21℃读作: 31℃读作: 实验要求:用温度计测量水的温度。 实验用品:400ml烧杯一个一支温度计适量冷水和一暖壶热水吸水纸废物瓶。 步骤操作要求评分标准满分得分1 清点仪器用品按材料清单清点材料用品是否齐全(5分)。 5

2 观察温度计的 零刻线、分度值 和量程。 A、观察温度计的零刻线。(10分) B、观察温度计的分度值和量程 。(10分) 20 3 用手感知水温。将手指伸入烧杯中(冷水)或将手放在烧杯 外壁(热水),手的感觉 (10分),估测水的温度(10分)。 20 4 将温度计测量 水的温度。 A、手拿温度计上端,将其竖直放入水中。(10 分) B、温度计的玻璃泡要完全浸没在水中,玻璃 泡不要碰烧杯的侧壁和底部。(10分) C、等示数稳定时再读数。读数时,要让玻璃 泡继续停留在水中。(10分) D、视线要和温度计的示数保持相平。连续三 次测水的温度分别为、、 ,平均水温为。(15分) 45 5 整理仪器,擦拭 桌面。 A、将温度计擦干放回原处。(5分) B、擦拭桌面。(5分) 10 实验三、水结冰了 一、实验名称:水结冰了 二、实验目的:观察水在不同温度下温度计的读数 三、实验步骤: 1、在试管里加入一半的纯净水,用温度计测量并记录试管里水的温度 2、拿一只保温杯(或在普通塑料杯外包裹一块干毛巾)在杯内装满碎冰, 把试管插入碎冰中,用温度计观测试管里水温的变化 3、在碎冰里加入较多的食盐,保持几分钟持续观测试管里的水温 4、观测试管里的水开始结冰时的温度 四、实验器材:试管、保温杯、温度计、碎冰块、食盐、纯净水。 水结冰了的实验记录表

三年级下册科学实验报告单

河北版三年级下册科学实验报告单 实验操作要求及评分标准 1. 清点器材(15分) (1)有清点实验器材的动作。(5分)(2)能准确说出器材名称。(10分) 2. 进行实验(50分) (1)正确使用仪器,合乎规范,注意安全。(10分) (2)按正确的实验步骤,通过观察、实验、制作等活动,进行操作。(30分)(3)实验过程中,集中精力,仔细观察,及时做好记录。(10分) 3. 填写实验报告(20分) (1)简要写出实验步骤。(10分) (2)记录实验现象,得出实验结论。(10分) 4. 整理仪器、收拾桌面(15分)(1)仪器归位、摆放整齐。(10分)(2)桌面整洁。(5分) (一)实验名称: 观察物体发生时的现象 实验器材:鼓和鼓槌、绿豆、钢锯条。实验步骤: 1.把绿豆放在鼓皮上,用鼓槌敲击鼓,观察绿豆。 2.把锯条放在课桌上,一半落空,一只手按住桌上一端,另一只手拨动锯条。 实验现象:1. 绿豆跳动 2. 锯条颤抖 实验结论:物体发声时振动。 (二)实验名称: 水能传声

实验器材:水槽、砂纸。 实验步骤: 1. 水槽中加满水。 2. 一个同学在水中磨砂纸,另一个同学将耳朵贴在水槽边听。 实验现象:听到了磨砂纸声音。实验结论:水能传声音。 (三)实验名称: 光的传播实验实验目的: 研究光是怎样传播的。 实验器材:手电筒一个、完全相同的中间带孔的硬纸片三张、纸屏一个。 实验步骤: 1. 将三张中间带孔的硬纸片、纸屏排在一条直线上(孔在一条直线上),用手电筒从一端向纸屏上照射,观察现象。 2. 将中间的硬纸片错开,用手电筒从一端向纸屏上照射,观察现象。实验现象:孔在一条直线上时,观察到纸屏上有光;将中间的硬纸片错开,孔不在一条直线上时,观察到纸屏上没有光。 实验结论:光是沿直线传播的。 (四)实验名称:光的反射实验 实验目的:光是否可以被反射。 实验器材:手电筒一个、中间带缝的硬纸片1张、平面镜一个、纸和尺子。 实验步骤:将中间带缝的硬纸片、平面镜放在纸上,排在一条直线上,用手电筒从硬纸片缝隙一端向平面镜上照射,改变平面镜摆放的角度观察现象,画出光的传播路线。

计算机图形学实验报告

《计算机图形学》 实验报告 学号:0908610211 姓名:宋雪英 班级:计算机0961 项目: 1.利用其它两种画直线方法实现放大10陪显示方法,交互式画直线,预先定义直线段的起止端点,每点击一次鼠标左键,画出直线上的一点,直到终点为止。 2.利用方形、线性两种画刷来绘制圆和椭圆。 3.实现交互式二维图形的放缩,旋转和对称变换 2012年12月25日

基本图形的生成技术 一、实验目的 在一个图形系统中,基本图形(也称为图元、图素等)的生成技术是最基本的,任何复杂的图形都是由基本图形组成的,基本图形生成的质量直接影响该图形系统绘图的质量。所以,需要设计出精确的基本图形生成算法,以确保图形系统绘图的精确性。本次实验的目的就是利用Bresenham 算法和中心画线法两种画直线方法实现放大10陪显示方法,交互式画直线,预先定义直线段的起止端点,每点击一次鼠标左键,画出直线上的一点,直到终点为止。利用方形、线性两种画刷来绘制圆和椭圆。实现交互式二维图形的放缩,旋转和对称变换。 二、实验任务 1.利用其它两种画直线方法实现放大10陪显示方法,交互式画直线,预先定义直线段的起止端点,每点击一次鼠标左键,画出直线上的一点,直到终点为止。 2.利用方形、线性两种画刷来绘制圆和椭圆。 3.实现交互式二维图形的放缩,旋转和对称变换。 三、画直线的实验内容 任务一:利用其它两种画直线方法实现放大10陪显示方法交互式画直线,预先定义直线段的起止端点,每点击一次鼠标左键,画出直线上的一点,直到终点为止。 1、设计思路 第一步:建立DDAMouseLine工程文件; 第二步:向视图类中添加自定义的成员变量 用鼠标右键单击视图类,选择“Add Member Variable…”,添加下面三个成员变量。 proctected : CPoint m_p1; //起点 CPoint m_p2; //起点 CPoint m_p; //点击鼠标时点的取值 第三步:向视图类中添加自定义的成员函数原型:

计算机图形学实验报告记录

计算机图形学实验报告记录

————————————————————————————————作者:————————————————————————————————日期:

计算机图形学实验报告 姓名:___ __________ 学号:_____ ________ 班级:______ _______ 时间:_____2016年12月_________

实验一OpenGL编程与图形绘制 1.实验目的 了解OpenGL编程,并熟悉OpenGL的主要功能、绘制流程和基本语法。学会配置OpenGL环境,并在该环境中编程绘图。 2.实验内容 OpenGL的主要功能:模型绘制、模型观察、颜色模式、光照应用、图像效果增强、位图和图像处理、纹理映射、实时动画和交互技术。 OpenGL的绘制流程分为两个方面:一个完整的窗口系统的OpenGL图形处理系统的结构为:最底层为图形硬件,第二层为操作系统,第三层为窗口系统,第四层为OpenGL,最上面的层为应用软件;OpenGL命令将被放在一个命令缓冲区中,这样命令缓冲区中包含了大量的命令、顶点数据和纹理数据。当缓冲区被清空时,缓冲区中的命令和数据都将传递给流水线的下一个阶段。 OpenGL的基本语法中相关库有:OpenGL核心库:gl、OpenGL实用程序库:glu、OpenG 编程辅助库:aux、OpenGL实用程序工具包(OpenGL utility toolkit,GLUT):glut、Windows 专用库:wgl。 OpenGL的基本语法中命名规则为:OpenGL函数都遵循一个命名约定,即采用以下格式:<库前缀><根命令><可选的参数个数><可选的参数类型>。 了解了上述基础知识后,配置好OpenGL环境,然后在该环境中编程练习图形的绘制,本次实验主要是对点的绘制、直线的绘制和多边形面的绘制。 3.实验代码及结果 3.1点的绘制: #include 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 Display(void) {

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

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

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

计算机图形学实验报告

计算机图形学 实验报告 姓名:谢云飞 学号: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.植物新生命的 课题实验名称观察植物的种子 开始 实验班级三年级实验类别B实验组数10(教师准备)猫给小猫哺乳的图片、鸡妈妈带小鸡吃食的图片、向日实验葵小苗的图片、各种植物的种子(向日葵、花生、四季豆、南瓜、小准备麦、玉米、绿豆等)、白纸、放大镜。 (学生准备)各种植物的种子、白纸、放大镜。 规范操作要点 用感官和放大镜观察种子的外部形态特征;根据植物生长的已有知识,预测植物种子的内部结构。 外部:形状、大小、颜色 备 注植物的种子 内部:胚根、胚芽 实验报告单 2.种植我们的 课题实验名称种植我们的植物 植物 实验班级三年级实验类别B实验组数10(教师准备)小铲、花盆、泥土、凤仙花种子、透明塑料杯、吸 实验 准备水纸等。 要点 规 范 操 作 学习掌握播种技能;在教师的指导下,设计适宜的实验,观察种子的萌发过程;根据研究植物生长变化的需要,确定观察、记录的内 容和方法;根据对种子萌发状况的预测,确定本阶段观察的重点。 备 注 记住播种方法:选种、放土、下种、浇水。

科学实验报告单 课题 3.我们先看到了 根实验名称 植物根的作用 实验班级三年级实验类别B实验组数10(教师准备)前一周种植在玻璃杯里的四季豆,试管、水、食用油、实验 一颗有根有叶的小植物。准备 规范操作要点 参看P8页书上的内容,教师边讲边操作。①选择一棵带根的植 物装入有水的试管中。②将植物的根浸泡在试管里的水中。③在水面上滴一些植物油,试管口塞一些棉花,使试管中的水不会被蒸发到空气中去,并在水面处做好标记。④观察试管中的水量有什么变化。 固定植物 备 注植物根的作用 吸收水分 实验报告单 4.种子变成了 叶为植物提供“食物” 课题实验名称 幼苗 实验班级三年级实验类别B实验组数10(教师准备)刚出土的凤仙花照片、植物叶水平分布和垂直分布的照实验 准备 片、植物光合作用示意图(多媒体课件)、植物光合作用的相关资料。 (学生准备)生长四周的凤仙花、记录单。 要点 规 范 操 作 组织学生交流种子发育成幼苗后植物的生长变化,观察凤仙花幼苗的 特征,研究植物叶的作用。 植物的光合作用不仅为植物制造养料,还为我们人类和动物制造养料和氧气。 备 注阳光 二氧化碳+水——→氧气+养料

南邮计算机图形学实验报告(完整版)

实验报告 实验名称指导教师 实验类型综合实验学时 2 实验时间 一、实验目的和要求 能够灵活的运用OpenGL图形API函数,基于C++程序语言,自行设计出各种各样的计算机图形方案并调整不同的透视模型。学会配置OpenGL 图形函数API,设计(1)在屏幕上显示基本3D图形;(2)设置图形的表面光照模型及投影变换模型。 1.所有图形(例如球体,正方体)有清晰的轮廓。 2.学会设置图形表面的光照色彩以及投影变换模型。 3.尽可能采用高效的算法,以降低时间复杂性和空间复杂性。

二、实验环境(实验设备) 硬件:微机 软件:vs2012

实验报告三、实验过程描述与结果分析 实验代码: #include // 绘制立方体 // 将立方体的八个顶点保存到一个数组里面static const float vertex_list[][3] = { -0.5f, -0.5f, -0.5f, 0.5f, -0.5f, -0.5f, -0.5f, 0.5f, -0.5f, 0.5f, 0.5f, -0.5f, -0.5f, -0.5f, 0.5f, 0.5f, -0.5f, 0.5f, -0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, }; // 将要使用的顶点的序号保存到一个数组里面static const GLint index_list[][2] = { {0, 1}, {2, 3},

{4, 5}, {6, 7}, {0, 2}, {1, 3}, {4, 6}, {5, 7}, {0, 4}, {1, 5}, {7, 3}, {2, 6} }; //光照模型 void init(void) { GLfloat ambient[] = { 0.0, 0.0, 0.0, 1.0 }; GLfloat diffuse[] = { 1.0, 1.0, 1.0, 1.0 }; GLfloat position[] = { 0.0, 3.0, 2.0, 0.0 }; GLfloat lmodel_ambient[] = { 0.4, 0.4, 0.4, 1.0 }; GLfloat local_view[] = { 0.0 }; glClearColor(0.0, 0.1, 0.1, 0.0); glEnable(GL_DEPTH_TEST);

计算机图形学实验报告

实验一 3D模型的加载、渲染与三维操作 学院: 专业班级: 指导老师: 学号: 姓名: 完成日期:

目录 一、实验目的 (3) 二、使用的工具软件及环境 (3) 三、实验内容 (3) 四、实验步骤 (3) 五、思考 (12)

一、实验目的 1、掌握在Microsoft Visual Studio环境中使用OpenGL、GLUT和GLUI; 2、了解计算机图形学固定流水线; 3、了解OpenGL编程基础; 4、掌握三维观察的数学表达和程序实现; 5、掌握多边形网格的绘制; 二、使用的工具软件及环境 Microsoft Visual Studio 2010、OpenGL、Glut、Glui 三、实验内容 1、在VS 2010中配置OpenGL环境; 2、编译简单的GLUT程序; 3、编译GLUI源代码,并在调试模式下执行6个示例程序; 4、在给定的工程中添加绘制简单几何体的代码; 5、在给定的工程中添加读取、绘制三维模型的代码; 6、在给定的工程中添加旋转、平移和缩放的控制代码; 四、实验步骤 1、安装Microsoft Visual Studio软件 版本选择:Microsoft Visual Studio 2010以上版本 2、VS2010中配置GLUT 1)下载GLUT。Windows环境下的GLUT下载地址: https://www.doczj.com/doc/6f16182713.html,/resources/libraries/glut/glutdlls37beta.zip 2)将下载的压缩包解开,将得到5个文件:glut.h、glut.lib、glut32.lib、 glut.dll、glut32.dll。3)将glut.h放到"%WinDir%\Program Files(x86)\Microsoft SDKs\Windows\v7.0A\Include\gl\"文件夹中。 4)将glut.lib和glut32.lib放到"%WinDir%\Program Files(x86)\Microsoft Visual Studio 10.0\VC\lib\"文件夹中。 5)将glut.dll和glut32.dll放到"%WinDir%\system32"文件夹(32位操作 系统)或者"%WinDir%\SysWOW64"文件夹(64位操作系统)。 3、测试GLUT配置环境

三年级科学实验报告单

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

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

3

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

5

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

计算机图形学实验报告

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

相关主题
文本预览
相关文档 最新文档