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

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

贵州大学实验报告

学院:计算机科学与信息学院专业:计科班级:计科101 姓名徐艳学号1008060042 实验序号实验七

实验时间2011-5-19 指导教

吴云成绩

实验项目名称真实感图形生成

实验目的1、学习OpenGL 基本程序结构

2、学习VC++ OpenGL应用程序开发技术;

3、学习真实感图形的生成算法。

实验要求在openGL库下,通过实现一些简单的图形绘制,学习并掌握OpenGL 基本程序结构,了解真实感图形的生成算法。

实验原理通过在vc++工具里面添加openGL库的三个文件dll,lib,glut到相应的地方,在通过设置,就可以在VC环境下进行OpenGL 基本程序编写,实现一些真实感的图形的绘制。

微型计算机、VC++、OpenGL

实验步骤一,编写程序代码,并上机调试。二,生成界面,制作实验报告。主要代码:

#include

void display()

{glClear(GL_COLOR_BUFFER_BIT);

glBegin(GL_POLYGON);

glVertex2f(-0.5,-0.5);

glVertex2f(-0.5,0.5);

glVertex2f(0.5,0.5);

glVertex2f(0.5,-0.5);

glEnd();

glFlush();

}

int main(int argc, char **argv)

{glutInit(& argc,argv);

glutCreateWindow("simple");

glutDisplayFunc(display);

glutMainLoop();

}

验内容

在VC++ OpenGL环境下,用已学过的真实感图形生成算法设计并生成一真实感图形。

矩形:

直线:三角形:

实验总结(1)与图形硬件的发展紧密结合,突破实时高真实感、高分辨率渲染的技术难点。

(2)研究和谐自然的三维模型建模方法。

(3)利用日益增长的计算性能,实现具有高度物理真实的动态仿真。

(4)研究多种高精度数据获取与处理技术,增强图形技术的表现。

(5)计算机图形学与图像视频处理技术的结合

(6)从追求绝对的真实感向追求与强调图形的表意性转变。

指导教师

意见

签名:年月日

注:可根据教学需要对以上栏目进行增减。表格内容可根据内容扩充。

计算机图形学实验报告

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

计算机图形学实验一

实验一二维基本图元的生成与填充 实验目的 1.了解并掌握二维基本图元的生成算法与填充算法。 2.实现直线生成的DDA算法、中点算法和Bresenham算法。 3.实现圆和椭圆生成的DDA和中点算法, 对几种算法的优缺点有感性认识。 二.实验内容和要求 1.选择自己熟悉的任何编程语言, 建议使用VC++。 2.创建良好的用户界面,包括菜单,参数输入区域和图形显示区域。 3.实现生成直线的DDA算法、中点算法和Bresenham算法。 4.实现圆弧生成的中点算法。 5.实现多边形生成的常用算法, 如扫描线算法,边缘填充算法。 6.实现一般连通区域的基于扫描线的种子填充算法。 7.将生成算法以菜单或按钮形式集成到用户界面上。 8.直线与圆的坐标参数可以用鼠标或键盘输入。 6. 可以实现任何情形的直线和圆的生成。 实验报告 1.用户界面的设计思想和框图。 2.各种实现算法的算法思想。 3.算法验证例子。 4.上交源程序。 直线生成程序设计的步骤如下: 为编程实现上述算法,本程序利用最基本的绘制元素(如点、直线等),绘制图形。如图1-1所示,为程序运行主界面,通过选择菜单及下拉菜单的各功能项分别完成各种对应算法的图形绘制。 图1-1 基本图形生成的程序运行界面 2.创建工程名称为“基本图形的生成”单文档应用程序框架 (1)启动VC,选择“文件”|“新建”菜单命令,并在弹出的新建对话框中单击“工程”标签。 (2)选择MFC AppWizard(exe),在“工程名称”编辑框中输入“基本图形的生成”作为工程名称,单击“确定”按钮,出现Step 1对话框。 (3)选择“单个文档”选项,单击“下一个”按钮,出现Step 2对话框。 (4)接受默认选项,单击“下一个”按钮,在出现的Step 3~Step 5对话框中,接受默认选项,单击“下一个”按钮。

计算机图形学实验报告 (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)掌握VC++绘图的一般步骤; (2)掌握OpenGL软件包的安装方法; (3)掌握OpenGL绘图的一般步骤; (4)掌握OpenGL的主要功能与基本语法。 二、实验内容 1、VC++绘图实验 (1)实验内容:以下是绘制金刚石图案。已给出VC++参考程序,但里面有部分错误,请改正,实现以下图案。 N=3 N=4

N=5 N=10 N=30

N=50 (2)参考程序 //自定义的一个类 //此代码可以放在视图类的实现文件(.cpp) 里class CP2 { public: CP2(); virtual ~CP2(); CP2(double,double); double x; double y; }; CP2::CP2() { this->x=0.0; this->y=0.0; } CP2::~CP2() { } CP2::CP2(double x0,double y0) { this->x=x0; this->y=y0; }

//视图类的一个成员函数,这个成员函数可以放在OnDraw函数里调用。 //在视图类的头文件(.h)里定义此函数 void Diamond(); //在视图类的实现文件(.cpp)里实现此函数 void CTestView::Diamond() { CP2 *P; int N; double R; R=300; N=10; P=new CP2[N]; CClientDC dc(this); CRect Rect; GetClientRect(&Rect); double theta; theta=2*PI/N; for(int i=0;i #include #include #include //定义输出窗口的大小 #define WINDOW_HEIGHT 300

计算机图形学实验报告,DOC

欢迎共阅

目录

实验一直线的DDA算法 一、【实验目的】 1.掌握DDA算法的基本原理。 2.掌握 3. 1.利用 2.加强对 四 { glClearColor(1.0f,1.0f,1.0f,1.0f); glMatrixMode(GL_PROJECTION); gluOrtho2D(0.0,200.0,0.0,150.0); } voidDDALine(intx0,inty0,intx1,inty1) { glColor3f(1.0,0.0,0.0); intdx,dy,epsl,k; floatx,y,xIncre,yIncre; dx=x1-x0;dy=y1-y0;

x=x0;y=y0; if(abs(dx)>abs(dy))epsl=abs(dx); elseepsl=abs(dy); xIncre=(float)dx/(float)epsl; yIncre=(float)dy/(float)epsl; for(k=0;k<=epsl;k++) { glPointSize(3); glBegin(GL_POINTS); glEnd(); } } { } { } { glutInitWindowSize(400,300); glutInitWindowPosition(100,120); glutCreateWindow("line"); Initial(); glutDisplayFunc(Display); glutReshapeFunc(winReshapeFcn); glutMainLoop(); return0; }

计算机图形学实验指导书1

佛山科学技术学院计算机图形学实验指导书 李晓东编 电信学院计算机系 2011年11月

实验1 直线段的扫描转换 实验类型:设计性 实验类别:专业实验 实验目的 1.通过实验,进一步理解直线段扫描转换的DDA算法、中点bresenham算法及 bresenham算法的基本原理; 2.掌握以上算法生成直线段的基本过程; 3.通过编程,会在C/C++环境下完成用DDA算法、中点bresenham算法及 bresenham算法对任意直线段的扫描转换。 实验设备及实验环境 计算机(每人一台) VC++6.0或其他C/C++语言程序设计环境 实验学时:2学时 实验内容 用DDA算法中点bresenham算法及bresenham算法实现任意给定两点的直线段的绘制(直线宽度和线型可自定)。 实验步骤: 1、复习有关算法的基本原理,明确实验目的和要求; 2、依据算法思想,绘制程序流程图; 3、设计程序界面,要求操作方便; 4、用C/C++语言编写源程序并调试、执行; 5、分析实验结果 6、对程序设计过程中出现的问题进行分析与总结; 7、打印源程序或把源程序以文件的形式提交; 8、按格式要求完成实验报告。 实验报告要求: 1、各种算法的基本原理; 2、各算法的流程图 3、实验结果及分析(比较三种算法的特点,界面插图并注明实验条件) 4、实验总结(含问题分析及解决方法)

实验2 圆的扫描转换 实验类型:设计性 实验类别:专业实验 实验目的 1、通过实验,进一步理解和掌握中点bresenham画圆算法的基本原理; 2、掌握以上算法生成圆和圆弧的基本过程; 3、掌握在C/C++环境下完成用中点bresenham算法圆或圆弧的绘制方法。实验设备及实验环境 计算机(每人一台) VC++6.0或其他C/C++语言程序设计环境 实验学时:2学时 实验内容 用中点(Besenham)算法实现圆或圆弧的绘制。 实验步骤 1.复习有关圆的生成算法,明确实验目的和要求; 2.依据算法思想,绘制程序流程图(注意圆弧生成时的输入条件); 3.设计程序界面,要求操作方便; 4.用C/C++语言编写源程序并调试、执行; 5.分析实验结果 6.对程序设计过程中出现的问题进行分析与总结; 7.打印源程序或把源程序以文件的形式提交; 8.按格式要求完成实验报告。 实验报告要求: 1.分析算法的工作原理; 2.画出算法的流程图 3.实验结果及分析(比较圆与圆弧生成算法的不同) 4.实验总结(含问题分析及解决方法)

七年级生物实验报告单_共10篇.doc

★七年级生物实验报告单_共10篇 范文一:七年级生物上册实验报告单七年级生物实验报告册2015年秋季上学期 学校三台花园初中班级七年级姓名 目录 一、调查校园、公园或农田的生物种类.............................................2二、非生物因素对某种动物影响......................................................3三、练习使用显微镜 (4) 四、观察植物细胞........................................................................5五、观察动物细胞 (6) 六、人体的基本组织........................................................................7七、观察草履虫 (8) 八、裸子植物和被子植物的种子...................................................9九、种子萌发的环境条件 (10) 十、植物茎内水分的运输...................................................11十一、观察叶片的结构 (12) 一、调查校园、公园或农田的生物种类实验报告 年级班实验人:组次:试验时间: 实验名称:调查校园、公园或农田的生物种类 实验目的:1、尝试调查的方法,初步学会调查记录 2、描述身边生物和生活环境

实验器材:调查表、笔、望眼镜、放大镜实验设计: 1、选择调查范围。校园、公园或农田 2、分组。8人一组,确定组长 3、设计调查路线。选择生物多、环境变化多得路线。 4、调查记录。 5、归类。 6、进行整理,系在笔记本上。 7、汇报调查结果。 二、非生物因素对某种动物影响实验报告 年级班实验人:组次:试验时间: 实验名称:非生物因素对某种动物影响 实验目的:影响鼠妇分布的环境因素实验器材:10只鼠妇、湿土、铁盘(塑料盘、纸盒)、纸板、玻璃板实验设计: 1.取一个方形的月饼盒,清洗干净,用记号笔在盒内画一条中线。【已做】 2.将10条大小形同,健康状况良好的黄粉虫放入一个纸杯,然后倒扣在月饼盒中线中间静置2分钟。绝对保持安静,不要大声说话和拍打桌子(为什么?),待黄粉虫适应一下环境。 3.2分钟后拿走纸杯,让黄粉虫自由活动,然后迅速用黑卡纸将月饼盒的一半遮起来,另一半有光线照射。明暗反差越大越好。 4.从黄粉虫自由活动算起,每隔一分钟统计一次明处和暗处的黄粉虫数目。共统计10次填入下表。 三、练习使用显微镜实验报告 年级班实验人:组次:试验时间: 实验目的:实验器材:实验设计: 1、_____:右手拿镜臂,左手托住镜座,放置于身体正前方偏左侧; 2、______:从镜头盒取出目镜和物镜,安装在镜头上;(拿物镜时手拿橡胶部位) 3、对光:转动转换器和遮光器,使物镜和遮光器较大孔对准通光孔,调节________使镜筒下降适当距离,转动__________,直到从目镜中看到一片白亮的视野。 4、放装片并固定:将永久玻片标本(有盖玻片一面向上)观察部分正对通光孔,压片夹固定; 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);

计算机图形学实验二

实验报告 课程名称:计算机图形学 实验项目:区域填充算法 实验仪器:计算机 系别:计算机学院 专业:计算机科学与技术 班级姓名:计科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;

计算机图形学实验报告

计算机图形学 实验报告 姓名:谢云飞 学号: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、通过实验,进一步理解和掌握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 ;

计算机图形学上机实验指导

计算机图形学上机实验指导 指导教师:张加万老师 助教:张怡 2009-10-10

目录 1.计算机图形学实验(一) – OPENGL基础 ..................................... - 1 - 1.1综述 (1) 1.2在VC中新建项目 (1) 1.3一个O PEN GL的例子及说明 (1) 2.计算机图形学实验(二) – OPENGL变换 ..................................... - 5 - 2.1变换 (5) 3.计算机图形学实验(三) - 画线、画圆算法的实现....................... - 9 - 3.1MFC简介 (9) 3.2VC6的界面 (10) 3.3示例的说明 (11) 4.计算机图形学实验(四)- 高级OPENGL实验...................... - 14 - 4.1光照效果 (14) 4.2雾化处理 (16) 5.计算机图形学实验(五)- 高级OPENGL实验........................ - 20 - 5.1纹理映射 (20) 5.2反走样 (24) 6.计算机图形学实验(六) – OPENGL IN MS-WINDOWS .......... - 27 - 6.1 实验目标: (27) 6.2分形 (28)

1.计算机图形学实验(一) – OpenGL基础 1.1综述 这次试验的目的主要是使大家初步熟悉OpenGL这一图形系统的用法,编程平台是Visual C++,它对OpenGL提供了完备的支持。 OpenGL提供了一系列的辅助函数,用于简化Windows操作系统的窗口操作,使我们能把注意力集中到图形编程上,这次试验的程序就采用这些辅助函数。 本次实验不涉及面向对象编程,不涉及MFC。 1.2在VC中新建项目 1.2.1新建一个项目 选择菜单File中的New选项,弹出一个分页的对话框,选中页Projects中的Win32 Console Application项,然后填入你自己的Project name,如Test,回车即可。VC为你创建一个工作区(WorkSpace),你的项目Test就放在这个工作区里。 1.2.2为项目添加文件 为了使用OpenGL,我们需要在项目中加入三个相关的Lib文件:glu32.lib、glaux.lib、opengl32.lib,这三个文件位于c:\program files\microsoft visual studio\vc98\lib目录中。 选中菜单Project->Add To Project->Files项(或用鼠标右键),把这三个文件加入项目,在FileView中会有显示。这三个文件请务必加入,否则编译时会出错。或者将这三个文件名添加到Project->Setting->Link->Object/library Modules 即可。 点击工具条中New Text File按钮,新建一个文本文件,存盘为Test.c作为你的源程序文件,再把它加入到项目中,然后就可以开始编程了。 1.3一个OpenGL的例子及说明 1.3.1源程序 请将下面的程序写入源文件Test.c,这个程序很简单,只是在屏幕上画两根线。 #include

计算机图形学实验一_画直线

大学实验报告 学院:计算机科学与技术专业:计算机科学与技术班级:计科131

如果 d<0,则M在理想直线下方,选右上方P1点; 如果 d=0,则M在理想直线上,选P1/ P2点。 由于d是xi和yi的线性函数,可采用增量计算提高运算效率。 1.如由pi点确定在是正右方P2点(d>0).,则新的中点M仅在x方向加1,新的d值为: d new=F(xi+2,yi+0.5)=a(xi+2)+b(yi+0.5)+c 而 d old=F(xi+1,yi+0.5)=a(xi+1)+b(yi+0.5)+c d new=d old+a= d old-dy 2.如由pi点确定是右上方P1点(d<0),则新的中点M在x和y方向都增加1,新的d值为 d new=F(xi+2,yi+1.5)=a(xi+2)+b(yi+1.5)+c 而 d old=F(xi+1,yi+0.5)=a(xi+1)+b(yi+0.5)+c d new=d old+a+b= d old-dy+dx 在每一步中,根据前一次第二迭中计算出的d值的符号,在正右方和右上方的两个点中进行选择。d的初始值: d0=F(x0+1,y0+0.5)=F(x0,y0)+a+b/2=a+b/2=-dy+dx/2 F(x0,y0)=0,(x0,y0)在直线上。 为了消除d的分数,重新定义 F(x,y)=2(ax+by+c) 则每一步需要计算的d new 是简单的整数加法 dy=y1-y0,dx=x1-x0 d0=-2dy+dx d new=d old-2*dy,当 d old>=0 d new=d old-2(dy-dx),当d old<0 Bresenham画线算法 算法原理: 与DDA算法 相似,Bresenham 画线算法也要在 每列象素中找到 与理想直线最逼 近的象素点。 根据直线的 斜率来确定变量 在x或y方向递 增一个单位。另 一个方向y或x

计算机图形学实验报告

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

七年级生物实验报告

七年级生物实验报告

长顺县初中生物实验报告姓名:班级:第小组时间:验目录生物学科七年级上册第一单元第二章一节14-15页 实验名称探究非生物因素对生物的影 响 实验类型分组实验 实验器材10CM深的纸盒、与纸盒稍大的透明盖板,鼠妇10只、干土湿土若干,秒表 实验目的1、体验探究的一般过程,学会学会探究中提出问题、作出假设、处理实验数据的方法,学会在实验设计中如何确定变量、如何设置对照实验; 2、通过探究光对鼠妇生活的影响,加深对非生物因素影响生物生活的理解。 实验过程 设计(实验步 骤) 提出问题:水分会影响鼠妇的生活吗? 作出假设:水会影响鼠妇的生活。 制定计划:实验装置:在纸盒内以横轴中线为界,一侧铺上湿土,一侧铺上干土,上面盖上盖板。 方法步骤: 1.以小组为单位进行实验,在两侧中央各放入5只鼠妇,静置2分钟; 2.每分钟统计一次,共统计10,将统计的结果填写在下表中,填写前请先将表格填写完整。 得出结论:水会影响鼠妇的生活。 时间 (分) 环境 2 3 4 5 6 7 8 9 10 11 平均 值湿土 干土 注意事项1、注意在采集鼠妇的过程中,不要伤害到鼠妇; 2、做完实验后,将鼠妇放归大自然

长顺县实验教师手册 实验目录生物学科七年级上册第二单元第二章二节42-43 页 实验名称 制作并观察植物细胞 临时装片 实验类型分组实验 实验器材 洋葱鳞片叶(或新鲜的黄瓜)、清水、碘液、镊子、刀片、滴管、纱布、吸水纸(或卫生纸)、载玻片、盖玻片、显微镜 实验目的 1、制作植物细胞临时装片,学习制作临时装片的基本方法; 2、认识植物细胞的基本结构; 3、练习绘制细胞结构简图。 实验过程 设计(实验步 骤) 方法步骤: 方案一制作洋葱鳞片叶(内)表皮细胞临时装片 (1)将载玻片与盖玻片擦拭干净,然后将载玻片放在实验台上,滴一滴清水到载玻片的中央; (2)用镊子撕下小片洋葱内表皮,浸入载玻片的清水中,用镊子将它展平; (3)用镊子夹起盖玻片,使它的一边先接触载玻片上的水滴,然后缓缓地放下,盖在要观察的洋葱内表皮上,避免盖玻片下出现气泡; (4)把一滴碘液滴在盖玻片一侧,用吸水纸从另一侧吸引碘液,使它完全浸润标本; (5)在低倍镜下观察制成的临时装片,并绘制简图。 方案二制作洋葱鳞片叶(外)表皮细胞临时装片 (1)将载玻片与盖玻片擦拭干净,然后将载玻片放在实验台上,滴一滴清水到载玻片的中央; (2)用镊子撕下小片洋葱内表皮,浸入载玻片的清水中,用镊子将它展平; (3)用镊子夹起盖玻片,使它的一边先接触载玻片上的水滴,然后缓缓地放下,盖在要观察的洋葱内表皮上,避免盖玻片下出现气泡; (4)在低倍镜下观察制成的临时装片,并绘制简图。 方案三制作黄瓜果肉细胞的临时装片 (1)先在洁净的载玻片中央滴一滴清水,然后用刀片将洁净的黄瓜表皮刮掉,再用清洗后的刀片轻轻刮取少许黄瓜表层果肉,均匀涂抹在载玻片上的水滴中,盖好盖玻片,制成临时装片。 (2)在低倍镜下观察制成的临时装片,并绘制简图。 小组交流与讨论: 1、洋葱表皮细胞与黄瓜果肉细胞在结构上有哪些相同点?哪些不同点? 2、制作黄瓜果肉细胞临时装片时需要染色吗?为什么? 3、植物细胞的基本结构由哪些部分组成? 实验记录: 将观察到的图像简要绘制在下方。 注意事项

计算机图形学实验指导书

计算机图形学实验指导书 授课教师:臧辉 适用专业:计算机学院计算机科学技术 使用班级: 12软件工程 授课时间:2015春季 授课学时:40/30/10学时 使用教材:计算机图形学教程 王汝传编著 人民邮电出版社,2009年版 湖北理工学院计算机学院

实验教学进度表

实验一直线段的生成算法 一、实验目的及要求 1、掌握Bresenham算法的原理; 2、熟悉Bresenham算法的具体c语言实现; 3、掌握dda算法的原理; 4、熟悉dda算法的具体c语言实现。 二、实验学时 4学时 三、实验任务 1、Bresenham算法的c语言实现 2、DDA算法的c语言实现 四、实验重点、难点 对Bresenham算法的原理以及c语言程序的具体实现 (一)Bresenham算法的实现 #include #include #include #include void Bresenham_line(int x0,int y0,int x1,int y1,int color) { 具体代码根据书上算法2.1.6改写 } Void main() { int gdriver = DETECT, gmode, errorcode; char msg[80]; initgraph(&gdriver, &gmode, "");//初始化图形和局部变量Bresenham_line(100,100,300,300,5); Getch(); Closegraph(); } (二)DDA算法的实现 #include #include #include #include void DDAline(int x0,int y0,int x1,int y1,int color) { 根据书上算法2.1-2改写 } void main() { int gdriver = DETECT, gmode;

计算机图形学实验报告

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

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

初中生物实验报告

初中生物实验报告集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-

八年级上册 1.观察人的血细胞涂片 目的:学习用显微镜观察血细胞,认识红细胞和白细胞的形态结构 仪器:人血细胞涂片、显微镜 步骤:1,取镜,对光 2,将装片置于载物台上 3,观察:先用低倍镜找到目标,转入高倍镜下观察 4,取下装片,收镜 现象: 结果:红细胞数量最多,呈圆饼状,个体较小;白细胞数量小,有细胞核,个体较大 2.观察小鱼尾鳍的血液流动 目的:了解血液在血管内的流动情况,根据血流速度、方向及血管粗细和分支情况区分动脉、静脉和毛细血管 原理:血液在尾鳍的流动情况为:动脉→毛细血管→静脉 仪器:培养皿、纱布、小金鱼、显微镜 步骤:1,用纱布包裹小鱼,只露出尾部,将小鱼放置于培养皿中,使尾鳍平铺在培养皿底部。 2,将培养皿放在载物台上,是通光孔正对小鱼尾鳍,用低倍镜观察尾鳍内的血管及血液在血管内的流动情况 现象:血管的粗细不同,血液在血管内沿着一个方向流动,最细的血管,血流速度最慢 结果:血液在尾鳍的流动情况为:动脉→毛细血管→静脉 3.观察植物叶表皮气孔 目的:观察气孔的结构,认识气孔的作用 仪器:蚕豆叶、镊子、载玻片、盖玻片、培养皿、刀片、解剖针

步骤:1,制作叶表皮的临时装片:取蚕豆叶,把叶片的背面向里折,丛折断处轻轻撕拉,折断处的白色薄膜就是叶的表皮。用镊子取一小片薄膜,放在载玻片的水滴中,用解剖针把他摊平,盖上盖玻片。2,低倍镜观察叶表皮:将临时装片放在载物台上,使用低倍镜观察现象:除了看到许多形状不规则的绿色细胞外,还可以看到成对的半月形的细胞,以及由它们的间隙形成的圆孔。 结果:植物叶表皮存在气孔,气孔由两个半月形的细胞构成 4.测定植物蒸腾作用 目的:通过实验,学习绿叶是植物进行蒸腾作用的器官 仪器:锥形瓶、塑料袋、新鲜树枝、水、食用油 步骤:1,取两个锥形瓶,标号A、B,向瓶内注入等体积的水,瓶口处倒入一层食用油 2,取两根相似的树枝,将其中一根叶子去掉,插入A瓶,另一根不做处理,插入B瓶。3,两组实验均套上塑料袋,一小时后进行观察。 现象:A组塑料袋上没有水蒸气,B组塑料袋上出现出水蒸气 结果:植物通过叶片发生蒸腾作用,将水分排出体外 .5..验证绿叶在光下吸收二氧化碳 目的:通过实验,证明绿色植物在进行光合作用时,需要吸收二氧化碳作为原料 原理:绿色植物利用太阳提供的光能,把二氧化碳和水转变成有机物,同时释放出氧气 仪器:广口瓶、导管、橡皮塞、凡士林、小盆植物 步骤:1,取三只大广口瓶,分别标号A、B、C。在A、B中各放一盆枝叶茂盛的植物,C瓶内放无植物的花盆。通过导管分别向各瓶中深吐气十余次,使瓶中含有大量的二氧化碳。用凡士林封口。 2,将A放入黑暗中,B、C放在阳光下。2小时后,向A、B、C三瓶中分别滴入一些澄清石灰水,观察各瓶内澄清石灰水的变化情况。 现象:A:浑浊;B:澄清;C:浑浊

相关文档
最新文档