文档库 最新最全的文档下载
当前位置:文档库 › 实验三 图形绘制

实验三 图形绘制

实验三 图形绘制
实验三 图形绘制

实验三图形绘制(一)

一、实验目的

1. 熟练掌握Line、Arc、Circle、Rectang、Ellipse、Polygen、Polyline、Spline命令的使用方法。

2. 熟练掌握图案填充的方法。

二、实验内容

1.绘制教材第41页图4-32图形。

2.绘制图5所示齿轮视图

3.绘制螺栓M10×50的三视图。

图 5

三、实验准备

1.预习相关知识:第四章基本绘图命令

2.明确实验内容,了解实验步骤。

四、实验步骤

1.绘制教材第41页图4-32图形

1)新建文件

2)在对话框中点击使用样板按钮,然后选择样板文件“A3”。

2.绘制图4-32图形,并保存,文件名为“sy31.dwg”。

绘制时注意:

?1)选择“01”层绘制粗实线

2)选择“05”层绘制中心线

3)按图中尺寸要求绘制图形,不标注尺寸。

?

?绘制图5所示齿轮视图

1)新建文件

2)在对话框中点击使用样板按钮,然后选择样板文件“A3”。

3)绘制齿轮视图,并保存,文件名为“sy32.dwg”。

绘制时注意:

1.选择“01”层绘制粗实线

2.选择“05”层绘制中心线

3.选择“02”层绘制细实线

4.选择“10”层绘制剖面线

5.按图中尺寸要求绘制图形,不标注尺寸。

3.绘制螺栓M10×50的三视图

参考步骤1,完成各视图绘制,保存图形文件名为“sy33.dwg”

五、作业

1.教材第41页图4-32图形文件。

2.图5所示齿轮视图文件

螺栓M10×50的三视图文件。

图形学实验报告

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

实验七 图形与多媒体处理

实验七图形与多媒体处理 【开发语言及实现平台或实验环境】 Windows2000 或XP,JDK1.6与MyEclispe6.5 【实验目的】 1.熟悉图形、图像的使用方法, 2.理解计算机动画的原理和Java 的多线程处理机制,能够编写Applet 中使用的动画。 【实验要求】 1.掌握使用图形类Graphics 画出不同图形的方法。 2.掌握在容器中输入图像、播放音乐的方法。 3.理解计算机动画原理,掌握图形双缓冲技术,能够设计计算机动画。 4.理解多线程机制,掌握线程的使用方法。 【实验内容】 一.使用图形类Graphics 在Java 中基本图形包括点、线、圆、矩形等,是构成复杂图形的基础。绘制基本图形要使用AWT包中的Graphics 类,它提供了各种基本图形的绘制方法,可以直接引用这些方法画点、线、圆、矩形等。1.创建在Applet 上画出不同的图形的程序 (1)程序功能:在Applet 上使用不同的颜色画出直线、圆、方块、圆弧等图形。 (2)编写LX7_1.java 程序文件,源代码如下。 import java.applet.Applet; import java.awt.Graphics; import java.awt.Color;

public class LX7_1 extends Applet { public void paint(Graphics g) { g.drawLine(10,10,50,10);//画线(确定两点) g.setColor(Color.red);//设置红颜色 g.drawOval(35,35,100,60);//画椭圆(圆心、宽和高) g.fillOval(200,15,60,100);//画具有填充色的圆 g.setColor(Color.blue);//设置蓝颜色 g.drawRect(20,130,80,80);//画矩形 g.fillRect(120,130,80,80);//画具有填充色的矩形 g.drawRoundRect(220,130,80,80,20,20);//画圆角矩形 g.fillRoundRect(320,130,80,80,20,20);//画具有填充色的圆角矩形 g.setColor(new Color(255,255,0)); //设置黄颜色 g.drawArc (250,20,100,100,0,90); g.fillArc (380,20,100,100,90,90); g.fillArc (300,25,100,100,180,90); g.drawArc (330,25,100,100,0,-90); } } (3)编译程序LX7_1.java。 (4)编写显示LX7_1.class 的页面文件,在浏览器中显示结果如图7.1 所示

计算机图形学实验报告实验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.椭圆的中点算法

(完整版)Matlab实验7图形绘制

实验7:图形绘制 一、实验目的 1、 掌握绘制二维图形的常用函数。 2、 掌握绘制三维图形的常用函数。 3、 掌握绘制图形的辅助操作。 二、实验内容 1、 已知2*13),2cos(2,12 y y y x y x y ===,完成下列操作: (1) 在同一坐标系下用不同的颜色和线型绘制三条曲线。 %homework_7_1_1.m x=0:pi/100:2*pi; y1=x.*x; y2=cos(2*x); y3=y1.*y2; plot(x,y1,'r--',x,y2,'k:',x,y3,'b-.'); (2) 以子图形式绘制三条曲线。 %homework_7_1_2.m x=0:pi/100:2*pi; y1=x.*x; y2=cos(2*x); y3=y1.*y2; subplot(2, 2, 1); plot(x,y1,'r--'); subplot(2, 2, 2); plot(x,y2,'k:'); subplot(2, 2, 3); plot(x,y3,'b-.'); (3) 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。 %homework_7_1_3.m %ì?D?í??¢?×ìYí??¢??í?oíì?3?í? x=0:pi/100:2*pi; y1=x.*x; y2=cos(2*x); y3=y1.*y2; %μúò?DD subplot(4, 3, 1); bar(x,y1,'r'); subplot(4, 3, 2); bar(x,y2,'k'); subplot(4, 3, 3); bar(x,y3,'b'); %μú?tDD

stairs(x,y1,'r'); subplot(4, 3, 5); stairs(x,y2,'k'); subplot(4, 3, 6); stairs(x,y3,'b'); %μúèyDD subplot(4, 3, 7); stem(x,y1,'r'); subplot(4, 3, 8); stem(x,y2,'k'); subplot(4, 3, 9); stem(x,y3,'b'); %μú??DD subplot(4, 3, 10); fill(x,y1,'r'); subplot(4, 3, 11); fill(x,y2,'k'); subplot(4, 3, 12); fill(x,y3,'b'); 2、 绘制极坐标曲线)sin(θρn b a +=,并分析参数a ,b ,n 对曲线形状的影响。 %homework_7_2.m function homework_7_2(a,b,n) theta=0:0.01:2*pi; rho=a.*sin(b+n.*theta); polar(theta,rho,'k'); %homework_7_2_tiao.m % a μ?ó°?ì subplot(3, 4, 1); homework_7_2(1,1,1) subplot(3, 4, 2); homework_7_2(2,1,1) subplot(3, 4, 3); homework_7_2(3,1,1) subplot(3, 4, 4); homework_7_2(4,1,1) % b μ?ó°?ì subplot(3, 4, 1); homework_7_2(1,1,1) subplot(3, 4, 2); homework_7_2(1,2,1) subplot(3, 4, 3); homework_7_2(1,3,1)

计算机图形学实验三报告

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

成绩评定表

二维图形变换 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);

信息技术四年级下册绘制图形很便捷教案

教案 课题:在Word中《绘制图形很便捷》 教材分析:本课主要是让学生学会使用绘图工具栏上的工具绘制简的图形。 教学目标: 学会运用绘图工具栏绘制简单的图形。 学会对图形进行移动、缩放、填色操作。 学会对图形进行组合和按正确的次序叠放。 教学重点:学会运用绘图工具栏绘制简单的图形。 教学难点:对图形进行移动、缩放、填色操作。 对图形进行组合和按正确的次序叠放。 教学方法:讲解法、指导法、练习法 教学手段:多媒体教室上机 一、导入 (教师展示Word绘制的图片)同学们,你们看老师的这个Word文档,上面的图片漂不漂亮?这是我自己绘制的,那么也就是说Word也能够绘制图片,这节课就让我们来共同学习如何用Word绘制简单的图形。 二、讲授新课 (一)认识绘图工具栏 师:要想在Word中绘制图形,我们首先需要就是绘图工具,在Word中,绘制图形所需要的工具,可以在绘图工具栏里找到,我们利用绘图工具栏上的

绘图工具按钮,可以很容易的画出直线、矩形、正方形、椭圆、圆等图形,把这些图形巧妙地组合起来,再配上适当的颜色,也能画出很漂亮的图画。 绘图工具栏平时不显示,我们怎么做绘画工具栏才会出现呢?(边说边做)方法: (1)单击菜单栏上的视图,打开“视图(V)”菜单,将鼠标指针反映向“视图”菜单中的工具栏(T)命令,弹出工具栏子菜单,其中列出了Word2000提供的所有工具栏。要显示某个工具栏,只需单击它的栏目名,使其栏名前出现√;反之,单击栏名前的√,使√消失,则可隐藏这个工具栏。 (2)单击常用工具栏上的“绘图”按钮,绘图工具栏就出现在窗中了。 (二)活动:绘制图形 1、范例 我们就从最简单的如何画一条直线讲起。希望同学们通过画一条直线,归纳出如何在Word2000中绘制图形。 如果要画一条直线,同学们考虑一下我们应该从绘图工具栏上选哪个绘图工具按钮(直线) 选择绘图工具按钮以后,我们考虑的就应该是在哪里绘制图形?把鼠标指针移到编辑区,观察鼠标指针形状的变化。当鼠标指针变成“+”形状。在编辑区中准备画线段的起始处按下左键拖动鼠标,拖到线段的终点处松开左键,一条线段就画出来了。

图形学实验报告

山东建筑大学测绘地理信息学院 实验报告 (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、通过实验,进一步理解和掌握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 ;

计算机图形学实验报告

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

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

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

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

计算机图形学实验报告 姓名:___ __________ 学号:_____ ________ 班级:______ _______ 时间:_____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))

实验七 图形、文本和位图

实验七图形、文本和位图 一实验内容 练习第7章的例Ex_Draw,Ex_Icon,Ex_Cursor 二实验步骤 例Ex_Draw课程的成绩分布直方图 1.创建工作文件夹Ex_Draw 2.在View类中添加一个成员函数DrawScore,用于根据成绩来绘制直方图,该函数代码 如下: void CEx_DrawView::DrawScore(CDC *pDC, float *fScore, int nNum) { int nScoreNum[]={0,0,0,0,0}; for(int i=0;iSelectObject(&brush1); CPen *oldPen=pDC->SelectObject(&pen); CRect rcSeg(rc); rcSeg.right=rcSeg.left+nSegWidth; CString strSeg[]={"<60","60-70","70-80","80-90",">=90"); CRect rcStr; for(i=0;i

12简单的图形绘制

沁县郭村中学校信息技术学科教师课时教案 年度 姓名张晓晨年级八时间月日教学环节教师活动学生活动设计意图 导入对比 图片 确认 目标 任务: 启动Flash cs 5.5,打开“素材\乡间小屋.fla”,与课文图1-2-1 对比,观察不同之处,讨论交流这些对象需要用哪些工具来完成。 1.启动Flash cs 5.5 2.列出不同之处 思考所用工具 发现任务 自主 完善 作品 任务:阅读课文按照操作提示完成实践。 提示:选择工具后,选项区域中“对象绘制”按下时图标为表 示绘制的是对象,弹起时,图标为表示绘制的是图形,这里 必须为后者,否则,在步骤6中,绘制蓝天白云时,就会出现遮 挡,看不到前面步骤绘制的内容。 自主完善发现困难 激发学习 的动力 演示讲述工具的使用方法刷 子 工 具 1.刷子工具,在舞台或对象上绘制填充颜色。单击中的颜色 方块,可以改变填充的颜色,单击弹出框右上角的可以打开系 统颜色对话框,改变颜色的色相饱和度;笔触颜色的改变方法相 同。在绘制对象钮按下,刷子模式选择标准绘图时,绘制的是对 象,框选时周围有蓝色线框。如果选择第二到第五种模式中的任 一种,绘制的是图形。后四种模式应在对象绘制钮弹起的情况下 使用。颜料绘画:只在有颜色的地方填充。后面绘画:在有颜色 的地方不填充,好像在后面绘画。颜料选择:用选择工具选择有 颜色的地方时,该模式在有颜色的地方涂上新的颜色。内不绘画: 如果从有颜色的部分的内部开始画,有颜色的地方涂上新的颜色, 如果从其外部开始画,反而在没有颜色的地方涂上颜色,有颜色 的地方涂不上颜色。 观看、练习讲授、观 察、练习相 结合 喷 涂 刷 工 具 2.喷涂刷工具:该工具在工具箱中没有属性设置,需打开属性面板 设置。在属性中选择喷涂的颜色,用于改变喷涂出的色点 的大小,当勾选“随机缩放”时,喷涂出的对象大小就不一样。 画笔:、,决定一次喷涂出的面积的大 小。喷涂刷还可以把原件作为对象进行喷涂。 观看、练习 课题 1.2简单的图形绘制课型共几课时 教学目标 知 识 与 技 能 1、掌握绘图基础知识; 2、掌握选择工具的使用,会选择单个或框选多个对象。 3、掌握线条工具、椭圆工具、矩形工具和刷子工具等绘图的使用; 4、能在选择工具后,在工具选项区或属性面板中设置工具的属性; 掌握图形修饰工具和查看工具的使用; 5、能利用颜色面板或属性面板设置工具的颜色属性。 6、能利用选择工具和功能键复制图形; 7、掌握任意变形工具的使用方法。 过程与方法在完善作品的过程中学习绘图工具属性、选项设置或颜色面板、属性面板的使用方法和图形的绘制。 情感态度 与价值观 通过实际操作体会Flash cs 5.5功能的强大和使用技巧,激发学生利用 艺术的方法呈现信息和表达思想感情,提高审美能力。 学习者特征分析农村中学初一年级学生,大部分从初一才开始学习信息技术,基础差,操作基础一般,在初一年级已经学习过Photoshop cs3,上节课又学了Flash CS5.5操作界面、熟悉了部分工具的使用方法。学生的学习兴趣很浓厚。 教学策略 选择与设计 讲授演示法,任务驱动学习法和协作学习法教学重点绘图工具的使用和图形修饰工具的使用 教学难点颜色面板中渐变色的设置

计算机图形学实验报告

目录

实验一直线的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(); }

实验三 MATLAB绘图(含实验报告)

实验三 MATLAB 绘图 一、实验目的 1.掌握二维图形的绘制。 2.掌握图形的标注 3.了解三维曲线和曲面图形的绘制。 二、实验的设备及条件 计算机一台(带有MATLAB7.0以上的软件环境)。 设计提示 1.Matlab 允许在一个图形中画多条曲线:plot(x1,y1,x2,y2,……)指令绘制y 1 = f 1(x 1), y 2 = f 2 (x 2 )等多条曲线。Matlab 自动给这些曲线以不同颜色。标注可用text 函数。 2.绘图时可以考虑极坐标和直角坐标的转换。 3.三维曲线绘图函数为plot3,注意参考帮助中的示例。 三、实验内容 1.生成1×10 维的随机数向量a ,分别用红、黄、蓝、绿色绘出其连线图、杆图、阶梯图和条形图,并分别标出标题“连线图”、“杆图”、“阶梯图”、“条形图”。 2、绘制函数曲线,要求写出程序代码。 (1) 在区间[0:2π]均匀的取50个点,构成向量t (2) 在同一窗口绘制曲线y1=sin(2*t-0.3); y2=3cos(t+0.5);要求y1曲线为红色点划线,标记点为圆圈;y2为蓝色虚线,标记点为星号。 (3) 分别在靠近相应的曲线处标注其函数表达式。 3.将图形窗口分成两个绘图区域,分别绘制出函数: ???+-=+=1 35 22 21x x y x y 在[0,3]区间上的曲线,并利用axis 调整轴刻度纵坐标刻度,使1y 在[0,12]区间上,2y 在[-2,1.5]区间上。 4.用mesh 或surf 函数,绘制下面方程所表示的三维空间曲面,x 和y 的

取值范围设为[-3,3]。 10102 2y x z + -= 思考题: 1. 编写一个mcircle(r)函数,调用该函数时,根据给定的半径r ,以原点 为圆心,画一个如图所示的红色空心圆。(图例半径r=5);左图参考 polar 函数的用法,右图绘制圆形的参数方程为x=sin (t ),y=cos (t )。其中,t 的区间为0~2*pi ,步长为0.1。 2.(1)绘一个圆柱螺旋线(形似弹簧)图。圆柱截面直径为10,高度为5,每圈上升高度为1。如左图所示。 (2)利用(1)的结果,对程序做少许修改,得到如右图所示图形。

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

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

7 实验七 图形用户界面的设计与实现

实验八图形用户界面的设计与实现 一、实验目的 1.掌握图形界面设计。 2.掌握常用GUI控制组件及其事件处理。 二、实验内容(任选3个) 1.编程包含一个标签和一个按钮,单击按钮时,标签的内容在"你好"和"再见"之间切换。 2.编程包含一个文本框和一个文本区域,文本框内容改变时,将文本框中的内容显示在文本区域中;在文本框中按回车键时,清空文本区域的内容。 3. 试设计一个窗口,内含一个按钮。开始运行时,按钮显示“Click Me”字样,当按钮按下时,按钮显示为“Click Me Again”字样,再按一次,则按钮显示“Click Me”字样,依此循环。 4.设计一个窗口,窗口中包含有一个文本框,一个标签,两个按钮,当按下“文本一”按纽时,使得Hello java!显示在文本框中,按下“文本二”按纽时,使得“你好Java!”显示在文本框中(要求两个按纽之间使用网格布局,与其他组件共使用Frame默认布局管理)。 5.试设计一个窗口,窗口界面如下图。包含Style菜单、Color菜单和Exit菜单,Style菜单设计字体的样式(包括Plane、Bold、Italic),Color(红、绿、蓝、自定义)菜单设计字体的颜色、Exit菜单(CloseWindow)退出系统。 6.编程包含一个复选按钮和一个普通按钮,复选按钮选中时,普通按钮的背景色为青色,未选中时为灰色。 7.编程包含一个单选按钮组和一个普通按钮,单选按钮组中包含三个单选,文本说明分别为"普通"、"黑体"和"斜体"。选择文本标签为"普通"的单选按钮时,普通按钮中的文字为普通字体,选择文本标签为"黑体"的单选按钮时,普通按钮中的文字的字体为黑体,选择文本标签为"斜体"的单选按钮时,普通按钮中的文字的字体为斜体。

绘制简单的图形

《绘制简单的图形》教学设计 【教学内容】: 小学信息技术教材青岛版四年级上册——第十课《绘制简单的图形》。 【学情分析】: 本课是本册书中第十课。学生已经学习了文字的插入与删除、对文字进行装饰、插入图形、插入艺术字等知识,对WORD已具有初步的操作能力了。本课是在前几课的教学基础上,让学生在页面中添加简单的图形,达到锦上添花的作用。所用的工具主要是绘图工具栏。 绘图工具栏作用很大,功能也很多。可以画流程图,数学中的线段图、几何图形,做电子手抄报等等。但是,在设计教学任务时,又觉得这些不太适合作为教学任务。 以画流程图为例,学生毕竟只有小学4年级,要理解流程图的概念,再理清思路,构思出完整的流程图,这是需要很多时间的,学生就无法在一节课时间内完成作品了。而且,流程图的画法是比较规范统一的,这也限制了学生思维的创新。 再以电子手抄报为例,虽然电子手抄报的形式多,可以极大地锻炼学生的创新能力,但是,电子手抄报的内容又太多,设计难度也太大,还牵扯到很多后面的知识,如文本框等,也不适合作为本节课的教学任务。 基于以上的分析,又恰逢元旦将至,我设计了以“设计新年贺卡”为项目的一堂课。贺卡里的贺词由老师以文本框的形式给出,学生只需在贺卡的版面上绘制一些图形,使贺卡变得更加美观就可以了。这样,不但降低了难度,减少了操作量,又突出了重点——绘制图形。更重要的是,在新年做一张贺卡送给自己的朋友也是他们很乐意做的事,这样的任务,更有利于激发他们的创作欲。 【教学目标】: 1、学会使用绘图工具栏上的按钮绘制线条、矩形、圆以及其他图形。 2、掌握改变几何图形的填充颜色、线条颜色、线型、阴影等效果的方法。 3、学会使用shift键画出正方形和圆。 4、通过布置生活中的实用任务这样一个项目,使学生感受信息技术的时代性、现实性,培 养“学以致用”的习惯,提高创作的乐趣。 5、通过观察鼠标指针的不断变化带给我们的不同提示,使学生感受计算机的人性化设计, 进一步提高自学能力、对新技术的适应能力。 6、通过同学间互相赠送贺卡,增进同学间的友情。 【教学重点】:

相关文档