opengl立方体的简单三维交互式几何变换实验报告材料+代码

opengl立方体的简单三维交互式几何变换实验报告材料+代码
opengl立方体的简单三维交互式几何变换实验报告材料+代码

立方体的简单三维交互式几何变换

这个学期对opengl的学习,使我对计算机图形学的一些算法过程有了更多的了解。因为对三维图形的显示比较感兴趣,就做了立方体的简单三维交互式几何变换。

功能:键盘的方向键实现立方体的上下左右平移;A键,S键分别实现向前,向后旋转;J键,K键分别实现放大,缩小;C键退出。

程序模块:

1.该模块为绘制一个立方体。

void DrawBox()

{

glBegin(GL_QUADS);

//前面

glColor3f(1,0,0);

glVertex3f(-1.0f, -1.0f, 1.0f); // 四边形的左下

glVertex3f( 1.0f, -1.0f, 1.0f); // 四边形的右下

glVertex3f( 1.0f, 1.0f, 1.0f); // 四边形的右上 glVertex3f(-1.0f, 1.0f, 1.0f); // 四边形的左上 // 后面

glColor3f(0,1,0);

glVertex3f(-1.0f, -1.0f, -1.0f); // 四边形的右下

glVertex3f(-1.0f, 1.0f, -1.0f); // 四边形的右上

glVertex3f( 1.0f, -1.0f, -1.0f); // 四边形的左下

// 顶面

glColor3f(0,0,1);

glVertex3f(-1.0f, 1.0f, -1.0f); // 四边形的左上glVertex3f(-1.0f, 1.0f, 1.0f); // 四边形的左下glVertex3f( 1.0f, 1.0f, 1.0f); // 四边形的右下glVertex3f( 1.0f, 1.0f, -1.0f); // 四边形的右上// 底面

glColor3f(1,1,0);

glVertex3f(-1.0f, -1.0f, -1.0f); // 四边形的右上glVertex3f( 1.0f, -1.0f, -1.0f); // 四边形的左上glVertex3f( 1.0f, -1.0f, 1.0f); // 四边形的左下glVertex3f(-1.0f, -1.0f, 1.0f); // 四边形的右下// 右面

glColor3f(0,1,1);

glVertex3f( 1.0f, -1.0f, -1.0f); // 四边形的右下glVertex3f( 1.0f, 1.0f, -1.0f); // 四边形的右上glVertex3f( 1.0f, 1.0f, 1.0f); // 四边形的左上glVertex3f( 1.0f, -1.0f, 1.0f); // 四边形的左下// 左面

glColor3f(1,0,1);

glVertex3f(-1.0f, -1.0f, 1.0f); // 四边形的右下

glVertex3f(-1.0f, 1.0f, 1.0f); // 四边形的右上

glVertex3f(-1.0f, 1.0f, -1.0f); // 四边形的左上

glEnd();

}

2.该模块设置屏幕颜色和深度缓存,设置立方体的平移,缩放,旋转变换。

void display()

{

glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); //清空颜色和深度缓存

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

//gluLookAt(2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);

glTranslatef(0.0f+tx,0.0f+ty,-4.0f);//平移变换

glScalef(1+sf,1+sf,1+sf); //缩放变换

glRotatef(ratX, 1.0f, 0.0f, 0.0f);//绕X轴的旋转变换

glRotatef(ratY, 0.0f, 1.0f, 0.0f);//绕Y轴的旋转变换

glRotatef(ratZ, 0.0f, 0.0f, 1.0f);//绕Z轴的旋转变换

DrawBox();

glFlush();

glutSwapBuffers();

}

3.该模块为重绘回调函数,在窗口首次创建或用户改变窗口尺寸时被调用。

void reshape(int w, int h)

{

glViewport(0, 0, w, h);// 指定视口的位置和大小

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

//glFrustum(-1.0, 1.0, -1.0, 1.0, 3.1, 10.0);

//gluPerspective(45,1,0.1,10.0);

glOrtho(-2.0, 2.0, -2.0, 2.0, 2.0, 10.0);

}

4.该模块为设置深度缓存和启动深度测试模式。

void init()

{

glClearColor (1.0, 1.0, 1.0, 1.0);

glEnable(GL_DEPTH_TEST); //启动深度测试模式

}

5.该模块为设置键盘的交互式操作。

void myKeyboard(unsigned char key, int x, int y)

{

if(key == 'a' || key == 'A')

ratX += 2;

ratY += 2;

ratZ += 2;

if(key == 's' || key == 'S')

ratX -= 2;

ratY -= 2;

ratZ -= 2;

if(key == 'j' || key == 'J')

sf+=0.1;

if(key == 'k' || key == 'K')

sf-=0.1;

if(key == 'c' || key == 'C')

exit(0);

glutPostRedisplay(); //重新调用绘制函数

}

6.该模块为设置键盘方向键的交互式操作。void myspecialKeyboard(int key,int x,int y){ if(key == GLUT_KEY_UP )

ty+=0.1;

if(key == GLUT_KEY_DOWN)

ty-=0.1;

if(key ==GLUT_KEY_LEFT)

tx-=0.1;

if(key==GLUT_KEY_RIGHT)

tx+=0.1;

glutPostRedisplay();

}

7.主函数模块,实现设置显示模式(窗口大小,位置),调用函数操作。int main(int argc, char** argv)

{

glutInit(&argc,argv); // 初始GLUT.

glutInitDisplayMode (GLUT_DEPTH |GLUT_DOUBLE | GLUT_RGB); //设定显示模式

glutInitWindowSize(400,400); // 设定窗口大小

glutInitWindowPosition(50,100); // 设定窗口位置

glutCreateWindow("立方体的简单三维交互式几何变换"); // 用前面指定参数创建

glutReshapeFunc(reshape); //指定重绘回调函数

glutDisplayFunc(display); // 进行一些初始化工作

glutKeyboardFunc( myKeyboard); //指定键盘回调函数

glutSpecialFunc(myspecialKeyboard); //指定键盘回调函数

init();

glutMainLoop();// 进入无穷循环,等待事件处理}

功能截图:

立方体的平移:

上平移

下平移:

左平移:

右平移:

放大:

旋转:

#include

#include

#include

float ratX = 60;

float ratY = 60;

float ratZ = 60;

float tx=0;

float ty=0;

float sf=0;

void DrawBox()

{

glBegin(GL_QUADS);

//前面

glColor3f(1,0,0);

glVertex3f(-1.0f, -1.0f, 1.0f); // 四边形的左下

glVertex3f( 1.0f, -1.0f, 1.0f); // 四边形的右下

glVertex3f( 1.0f, 1.0f, 1.0f); // 四边形的右上

glVertex3f(-1.0f, 1.0f, 1.0f); // 四边形的左上// 后面

glColor3f(0,1,0);

glVertex3f(-1.0f, -1.0f, -1.0f); // 四边形的右下

glVertex3f(-1.0f, 1.0f, -1.0f); // 四边形的右上glVertex3f( 1.0f, 1.0f, -1.0f); // 四边形的左上glVertex3f( 1.0f, -1.0f, -1.0f); // 四边形的左下

// 顶面

glColor3f(0,0,1);

glVertex3f(-1.0f, 1.0f, -1.0f); // 四边形的左上glVertex3f(-1.0f, 1.0f, 1.0f); // 四边形的左下glVertex3f( 1.0f, 1.0f, 1.0f); // 四边形的右下glVertex3f( 1.0f, 1.0f, -1.0f); // 四边形的右上// 底面

glColor3f(1,1,0);

glVertex3f(-1.0f, -1.0f, -1.0f); // 四边形的右上glVertex3f( 1.0f, -1.0f, -1.0f); // 四边形的左上glVertex3f( 1.0f, -1.0f, 1.0f); // 四边形的左下glVertex3f(-1.0f, -1.0f, 1.0f); // 四边形的右下// 右面

glColor3f(0,1,1);

glVertex3f( 1.0f, -1.0f, -1.0f); // 四边形的右下glVertex3f( 1.0f, 1.0f, -1.0f); // 四边形的右上glVertex3f( 1.0f, 1.0f, 1.0f); // 四边形的左上glVertex3f( 1.0f, -1.0f, 1.0f); // 四边形的左下// 左面

glColor3f(1,0,1);

glVertex3f(-1.0f, -1.0f, -1.0f); // 四边形的左下

glVertex3f(-1.0f, -1.0f, 1.0f); // 四边形的右下

glVertex3f(-1.0f, 1.0f, 1.0f); // 四边形的右上

glVertex3f(-1.0f, 1.0f, -1.0f); // 四边形的左上

glEnd();

}

void display()

{

glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); //清空颜色和深度缓存

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

//gluLookAt(2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);

glTranslatef(0.0f+tx,0.0f+ty,-4.0f);//平移变换

glScalef(1+sf,1+sf,1+sf); //缩放变换

glRotatef(ratX, 1.0f, 0.0f, 0.0f);//绕X轴的旋转变换

glRotatef(ratY, 0.0f, 1.0f, 0.0f);//绕Y轴的旋转变换

glRotatef(ratZ, 0.0f, 0.0f, 1.0f);//绕Z轴的旋转变换

DrawBox();

glFlush();

glutSwapBuffers();

}

void reshape(int w, int h) //重绘回调函数,在窗口首次创建或用户改变窗口尺寸时被调用

{

glViewport(0, 0, w, h);// 指定视口的位置和大小

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

//glFrustum(-1.0, 1.0, -1.0, 1.0, 3.1, 10.0);

//gluPerspective(45,1,0.1,10.0);

glOrtho(-2.0, 2.0, -2.0, 2.0, 2.0, 10.0);

}

void init()

{

glClearColor (1.0, 1.0, 1.0, 1.0);

glEnable(GL_DEPTH_TEST); //启动深度测试模式

}

void myKeyboard(unsigned char key, int x, int y) {

if(key == 'a' || key == 'A')

ratX += 2;

ratY += 2;

ratZ += 2;

if(key == 's' || key == 'S')

ratX -= 2;

ratY -= 2;

ratZ -= 2;

if(key == 'j' || key == 'J')

sf+=0.1;

if(key == 'k' || key == 'K')

sf-=0.1;

if(key == 'c' || key == 'C')

exit(0);

glutPostRedisplay(); //重新调用绘制函数

}

void myspecialKeyboard(int key,int x,int y){

if(key == GLUT_KEY_UP )

ty+=0.1;

if(key == GLUT_KEY_DOWN)

ty-=0.1;

if(key ==GLUT_KEY_LEFT)

tx-=0.1;

if(key==GLUT_KEY_RIGHT)

tx+=0.1;

glutPostRedisplay();

}

int main(int argc, char** argv)

{

glutInit(&argc,argv); // 初始GLUT.

glutInitDisplayMode (GLUT_DEPTH |GLUT_DOUBLE | GLUT_RGB); //设定显示模式

glutInitWindowSize(400,400); // 设定窗口大小

glutInitWindowPosition(50,100); // 设定窗口位置

glutCreateWindow("立方体的简单三维交互式几何变换"); // 用前面指定参数创建

glutReshapeFunc(reshape); //指定重绘回调函数

glutDisplayFunc(display); // 进行一些初始化工作

glutKeyboardFunc( myKeyboard); //指定键盘回调函数

glutSpecialFunc(myspecialKeyboard); //指定键盘回调函数init();

glutMainLoop();// 进入无穷循环,等待事件处理

}

几何画板实验报告

一.实验内容:画出一个正方形 二.实验目的:学会使用变换中的旋转按钮 三.实验步骤: ①画出一条线段; ②选中线段左端点双击,标记中心; ③选中线段和另一端点,选择变换中的旋转按钮,并设置旋转角度为90°,然后在依次做出另外两条边。 四.实验结果 实验二 一实验内容:构造三角形的中线 二实验目的:学会构造线段中点

三实验步骤: ①单击线段工具,构造出一个三角形ABC; ②选中线段AB,执行构造-中点命令,构造出AB中点D ③单击线段工具,连接CD. 四实验结果 实验三 一实验内容:构造三角形的外心 二实验目的:学会构造线段的中垂线 三实验步骤: ①单击线段工具,构造出一个三角形ABC; ②选中线段AB,执行构造-中点命令,构造出AB中点D,同时选中AB和D,执行构造-垂线

③在AC上重复②,两垂线交点即为外心 四实验结果 一实验内容:绘制三角形的内心 二实验目的:学会构造已知角的平分线 三实验步骤: ①画出任意三点A,B,C,选中A,B.C三点,执行构造-线段,构造出三角形ABC; ②依次选中B,A,C,执行构造-角平分线,构造出BAC ∠的角平分线i; ③按照②的步骤做出ABC ∠的角平分线j; ④选中i,j,执行构造-中点命令,构造出三角形内心D; ⑤选中i,j,执行显示-隐藏平分线,隐藏平分线。 四实验结果:

实验五 一实验内容:绘制函数x =的函数图像 y3 二实验目的:绘图菜单的使用方法 三实验步骤: ①执行绘图-定义坐标系命令,新建坐标系,并将原点坐标的标签设为O; ②执行数据-新建函数命令,新建函数x =; y3 ③选中函数,执行绘图-绘制函数命令,画出x =的函数图像. y3 四实验结果

图形学实验报告

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

几何画板十个实例教学教程

几何画板实例教程:(1)模拟时钟 1,制作表盘 打开图表----定义坐标系,以原点为圆心构造圆O,右击圆周选选择粗线,颜色任意。在圆周上取点B,选取点O、B打开菜单变换---缩放选择固定比为4:5得到点B′ 构造线段BB′右击选择粗线,选择点O 打开变换标记中心,选择线段BB′(不要断点)打开菜单变换---旋转六十度,同理旋转十一次得到 。

在圆周任意取点C,选取O和C打开菜单变换---缩放,固定比选择为9:10 得到C′构造线段CC′,选取点C和线段CC′变换旋转6°,C旋转得到点D,然后选取点C打开菜单变换---迭代,影像选择点D,迭代次数操作键盘加号得到58次:

设y轴与圆的交点为E以点0为缩放中心将点E分别缩放90%,60℅,30%,得到点F、G、H隐藏网格和坐标轴,分别构造线段OF,OG,OH并设置为虚线、细线、粗线得到图:到此为止表盘完成了。 2:制作按钮操作时钟 打开菜单图标—新建参数标签改为秒,值的精确度选择为百分之一 打开菜单度量---计算,使用函数trunc分别计算一下结果:秒针旋转的角度、分针的旋转角度、时针的旋转角度。

选取参数“秒=1”打开编辑---操作类按钮—动画 范围设置为0到86400(一天一夜二十四小时共86400秒),标签改为“启动时钟”。 再次选择参数秒同上面一样打开动画按钮,不同的是把范围改为0到0.001,(此范围保证各指针的旋转的角度为0°),标签改为“归零”

选取打开菜单变换---标记角度,然后选取秒针(即图中的虚线)做变换—旋转变换,同理再分别选取分针和时针的旋转角度

做分针和时针的旋转变换。 此时点击启动时钟和归零就可以得到时钟的转动的效果了。(没有用的线可以隐藏了) 3.制作合并文本 用文本工具分别作时、分、秒三个独立的文本 再分别打开度量---计算下面三个值: 此结果是小时的取整; 此结果是秒的显示数字; 此结果为分的显示数字 分别右键单击三个结果选择属性—值的精确度选择单位。 依次选择下面的文本和值打开菜单编辑—合并文本

实验二、应用轨迹与跟踪功能绘制图形(几何画板)

实验二、应用轨迹与跟踪功能绘制图形 一、实验目的: 认识、分清主动点和被动点,学会应用轨迹与追踪功能绘制图形 二、实验内容 1、作出双曲线、抛物线的轨迹 2、设ABCD为矩形,P是AB上的一动点,过P作PE⊥AC于E,PF⊥BD于F, (1)作出EF的中点轨迹。 (2)作出线段EF运动的轨迹。 3、三角形ABC顶点A在一定圆上运动,另外两个顶点固定,作出三角形ABC外心的轨迹。并讨论分出各种情形。 4、作出与已知定圆、定直线都相切的圆的圆心的轨迹。 三、实验步骤 1、(1)做一条射线,取端点A和射线上一点B构成线段作为定长2a 做一条直线,上面取两点F1 、F2为焦点。|F1 F2| >|AB| 再在射线上取点C 构造线段AC、BC 以F1为圆心,AC为半径做圆,F2为圆心,BC为半径做圆。 两圆相交的两点分别记为F、G。 选中点C、F构造轨迹,选中点C、G构造轨迹。则得到双曲线的一支。同理作图得双曲线另一支。 (2)做一条直线,取点上两点A、B 构造线段AB,并以A为圆心,AB为半径做圆,交直线于点C

选中点A和直线构造垂线I 在此垂线上取一点E。 选中点E和垂线I,构造垂线m。 选中点E、B构造线段。并选择它作中点F。 选中F和线段构造垂线n。 m与n交于一点G。 选中点E、G构造轨迹。则得到抛物线。 2、(1)制作矩形ABCD,取P上一点。连接AC、BD。 选中P和AC构造垂线,与AC的交点为E。 选中P和BD构造垂线,与BD的交点为F。 选中E、F构造线段。选择线段EF构造中点。 选中P、及EF的中点构造轨迹。 (2)选中点P及线段EF构造轨迹。 3、在平面上作一个圆。取圆上一点O。构造三角形BCD 分别取三条边的中点作垂线。三条垂线交于一点即是外心E。 选中点A和外心E,构造轨迹。 讨论:当三角形为锐角三角形时,轨迹在三角形内或与三角形最长边相交;当三角形为直角三角形,该轨迹的一个端点为三角形斜边中点,其他点均在三角形外,并平行于竖直的直角边;当三角形为钝角时,轨迹完全在三角形外,或与三角形最长边相交。 结论:外心运动轨迹在定点CD边所做的中垂线上。 4、构造定圆O和定直线k。

图像灰度变换实验报告

图像灰度变换报告 一.实验目的 1.学会使用Matlab ; 2.学会用Matlab 软件对图像进行灰度变换,观察采用各种不同灰度变换发法对最终图像效果的影响; 二.实验内容 1.熟悉Matlab 中的一些常用处理函数 读取图像:img=imread('filename'); //支持TIF,JPEG,GIF,BMP,PNG 等文件格式。 显示图像:imshow(img,G); //G 表示显示该图像的灰度级数,如省略则默认为256。 保存图片:imwrite(img,'filename'); //不支持GIF 格式,其他与imread 相同。 亮度变换:imadjust(img,[low_in,high_in],[low_out,high_out]); //将low_in 至high_in 之间的值映射到low_out 至high_out 之 间,low_in 以下及high_in 以上归零。 绘制直方图:imhist(img); 直方图均衡化:histeq(img,newlevel); //newlevel 表示输出图像指定的灰度级数。 2.获取实验用图像:rice.jpg. 使用imread 函数将图像读入Matlab 。 3 .产生灰度变换函数T1,使得: 0.3r r < 0.35 s = 0.105 + 2.6333(r – 0.35) 0.35 ≤ r ≤ 0.65 1 + 0.3(r – 1) r > 0.65 用T1对原图像rice.jpg 进行处理,使用imwrite 函数保存处理后的新图像。 4.产生灰度变换函数T2,使得: s = 5.用T2imwrite 保存处理后的新图像。 6.分别用 s = r 0.6; s = r 0.4; s = r 0.3 对kids.tiff 图像进行处理。为简便起见,使用Matlab 中的imadjust 函数,最后用imwrite 保存处理后的新图像。 7.对circuit.jpg 图像实施反变换(Negative Transformation )。s =1-r; 使

几何画板视频教程全集(完整)(完整资料).doc

此文档下载后即可编辑 几何画板视频教程全集(完整) 一、绘制几何图形和几何体[本章实例下载] 实例1 利用画点工具任意画三点 实例2 绘制线段 实例3 绘制过同一点的三条直线 实例4 绘制相同端点的三条射线 实例5 绘制三个同心圆 实例6 绘制共点圆 实例7 绘制圆在第一象限内的部分 实例8 绘制三角形的中线 实例9 绘制三角形的三条角平分线 实例10 绘制三角形的三条高 实例11 绘制相邻两边可以随意改变的平行四边形实例12 绘制菱形 实例13 绘制梯形的中位线 实例14 绘制等腰梯形 实例15 绘制正三角形 实例16 绘制正五边形 实例17 绘制关于某条直线对称的两个全等的三角形实例18 绘制关于某点对称的两个三角形 实例19 绘制相似三角形 实例20 绘制五角星 实例21 绘制正方体 实例22 绘制相邻三条棱可改变的三棱柱 实例23 绘制三棱台 实例24 绘制圆柱 实例25 绘制圆锥 实例26 绘制圆台

二、制作度量型课件[本章实例下载] 实例1 验证三角形的中位线定理 实例2 验证圆幂定理 实例3 验证三角形内角和 实例4 验证圆周角与圆心角的关系实例5 验证同底等高三角形面积相等实例6 验证三角形的面积公式 实例7 验证勾股定理 实例8 验证两点间的距离公式 实例9 验证正弦定理 实例10 验证两平行线间的斜率关系实例11 验证余弦定理 实例12 绘制分段函数

三、制作图像型课件[本章实例下载] 实例1 二次函数的图像 实例2 指数函数的图像 实例3 对数函数的图像 实例4 函数y=sinx的图像 实例5 绝对值函数的图像 实例6 可变系数的二次函数的图像 实例7 可变系数的三角函数的图像 实例8 定义在区间[a,b]上的函数的图像实例9 椭圆的参数方程 实例10 星形线 实例11 圆锥曲线的统一方程 实例12 心脏线

几何画板实验报告(函数y=Asin(ωx+φ)图象)

实验报告 实验项目:设计制作课堂教学型的课件 班级:姓名: 学号:实验时间:2013 年月日 一、实验目的:通过计算机辅助教学的理论与实践相结合,查阅资料,设计制作中学数学某一节课(自选内容)的课堂教学型课件,在实验过程中掌握课堂教学型课件设计方法与制作技巧。 二、实验设备:多媒体计算机、几何画板等 三、教学设计方案

四、课件的创作思路 按照课本要求,考虑到函数y=Asin(ωx+φ)的图象相对难掌握,特选取几何画板作为课件的制作软件。课件设计由浅入境,通过对旧知识点的回顾复习,再慢慢计入新知识点的学习,以问题为基本主导线,注重学生自主动手,自主学习能力,通过讨论,探讨问题渐渐深入课程学习,渐渐把握参数φ、ω、A对函数y=Asin(ωx+φ)的图象的影响。所以课件在设计中看重问题,情景的设计,以及如何让学生更容易,更直观地了解,掌握参数φ,ω,A对函数y=Asin(ωx+φ)的图象的变换规律。讲授新知识点后及时进行例题讲解,让学生查漏补缺,真正把知识学懂,学通,学透,本课件按照人教版要求,符合普遍学生的学习接受能力,通过提出问题观察图片,吸引学生的注意力,以带动学生思考问题。在传递新内容上,通过图文解说,形象表达学习内容,层次分明,能让学生容易理解、学习和掌握知识。学习完新知识后,进行一段小结,巩固学生记忆。最后布置几道与这节课内容相关的习题,是为了巩固本节课内容。使学生通过本节课,能基本掌握参数φ,ω,A对函数y=Asin(ωx+φ)的图象的变换规律。 五、思考题

分析课件所使用的媒体在课堂教学实践中的作用。 本课件主要应用了几何画板软件,应用几何画板的“形象、直观”的动态效果,能很好的演示课本上的内容和几何图片,容易让学生理解掌握新概念。本节课的一些思考及练习,能很好的培养学生的发散思维,达到举一反三的目的。几何画板的重要作用就是能准确地表达几何图像。本课件适用大部分地区高中学校的课堂教学。

实验报告二 Matlab图像代数运算和几何变换

实验二Matlab图像代数运算和几何变换 一、实验目的 1、掌握不同图像类型的转换 2、掌握图像代数运算和几何变换的方法; 3、掌握灰度级插值法的实验方法。 二、实验内容 1、练习图像类型转换的相关命令(ind2rgb,mat2gray,grayslice,rgb2gray,rgb2ind,im2bw,ind2gray,dither)(p69-73); 2、练习课本6.3.2(p139-p143)图像代数运算的内容; 3、练习图像平移 (p148),图像比例变换(p153),图像旋转(p156),图像镜像变换(p158),图像切割(p160)Matlab实现例题; 4、练习灰度级插值法(p171)。 三、实验步骤和结果 1、练习图像类型转换的相关命令(ind2rgb,mat2gray,grayslice,rgb2gray,rgb2ind,im2bw,ind2gray,dither) (1)mat2gray()函数 I=imread('rice.png'); >> J=filter2(fspecial('sobel'),I); >> K=mat2gray(J); >> imshow(I); >> figure,imshow(K) (2)、grayslice()函数 >> I=imread('snowflakes.png'); >> X=grayslice(I,16); >> imview(I) imview(X,jet(16)) (3)、rgb2ind()函数 > RGB=imread('peppers.png'); >> imshow(RGB); >> figure,imshow(RGB) >> [X,map]=rgb2ind(RGB,128); >> figure,imshow(X,map) (4)、im2bw()函数 >> load trees >> BW=im2bw(X,map,0.4); >> figure,imshow(X,map) >> figure,imshow(BW) (5)、ind2gray()函数 load trees >> I=ind2gray(X,map); >> figure,imshow(X,map) >> figure,imshow(I) (6)、dither()函数 >> RGB=imread('peppers.png'); >> [X,map]=rgb2ind(RGB,256); >> I=dither(RGB,map); >> BW=dither(I); >> imshow(RGB,map); >> figure,imshow(RGB,map); >> figure,imshow(BW) Result: (1)转换后图像(2)索引色图像

最全的几何画板实例教程

上篇用几何画板做数理实验 图1-0.1 我们主要认识一下工具箱和状态栏,其它的功能在今后的学习过程中将学会使用。 案例一四人分饼 有一块厚度均匀的三角形薄饼,现在要把它平 均分给四个人,应该如何分? 图1-1.1 思路:这个问题在数学上就是如何把一个三角形分成面积相等的四部分。 方案一:画三角形的三条中位线,分三角形所成的四部 分面积相等,(其实四个三角形全等)。如图1-1.2。 图1-1.2

方案二:四等分三角形的任意一边,由等底等高的三角形面积相等,可以得出四部分面积相等,如图1-1.3。 图1-1.3 用几何画板验证: 第一步:打开几何画板程序,这时出现一个新绘图文件。 说明:如果几何画板程序已经打开,只要由菜单“文件”→“新绘图”,也可以新建一个绘图文件。 第二步:(1)在工具箱中选取“画线段”工具; (2)在工作区中按住鼠标左键拖动,画出一条线段。如图 1-1.4。 注意:在几何画板中,点用一个空心的圈表示。 图1-1.4 第三步:(1)选取“文本”工具;(2)在画好的点上单击左键,可以标出两点的标签,如图1-1.5: 注意:如果再点一次,又可以隐藏标签,如果想改标签为其它字母,可以这样做: 用“文本”工具双击显示的标签,在弹出的对话框中进行修改,(本例中我们不做修改)。如图 1-1.6 图1-1.6 在后面的操作中,请观察图形,根据需要标出点或线的标签,不再一一说明 B 图1-1.5 第四步:(1)再次选取“画线段”工具,移动鼠标与点A 重合,按左键拖动画出线段AC ;(2)画线段BC ,标出标签C ,如图1-1.7。 注意:在熟悉后,可以先画好首尾相接的三条线段后再标上标签更方便。 B 图1-1.7 第五步:(1) 用“选择”工具单击线段AB ,这时线段上出现两个正方形的黑块,表示线段处于被选取状态;(2) 由菜单“作图”→“中点”,画出线段AB 的中点,标上标签。得如图1-1.8。 注意:如果被选取的是点,点的外面会有一个粗黑圆圈。在几何画板中,选取线段是不包括它的两个端点的,以后的问题都是这样,如果不小心多选了某个对象,可以 B C D 图1-1.8

使用“平移”“旋转”与“轨迹”功能绘制复杂几何图形

几何画板实验报告:使用“平移”“旋转”与“轨迹”功能绘制复 杂几何图形 一、实验目的 掌握“平移”“旋转”与“轨迹”功能及其应用,能熟练将前两者结合绘制复杂图形。 二、实验内容 题目1、绘制正五边形并设置控制按钮使其绕中心旋转180度。 步骤:1、先绘制正五边形。 (1)、任意绘制一条线段,选择旋转72度,连续旋转5次(图1) (2)、连接端点,构成正五边形并得出中点O(图2) 图1 图2 2、【构造】一个圆E,【构造】圆上的半段弧GF,并【构造】弧上的一点D(图3) 图3 图4 3、设定角度DEF为标记角度,选中正五边形,点击【变换】,【旋转】,选择标记角度并以中心O为旋转中心。(图4) 4、选中点G,E选择【编辑】,【操作类按钮】,【移动】命令,得到名为“从D→G移动”的按钮,同理得名为“从D→F移动”的按钮.图5为旋转180度的图像和两个按钮。

图5 题目2、作出圆柱及过其棱上一点且与底面平行的截面。并设置截面的平行移动。 步骤:1、作出一个同心圆A,过A作水平线,在大圆上任取一点E作水平线的垂线EF,连接AE与小圆交于点G,过点G作EF的垂线,交于点H,以E为主动点,H为被动对象构造轨迹,一次选中点E和点H【构造】【轨迹】,即圆柱的底面。(图1) 图1 图2 2、将其余图形隐藏,只留下椭圆。过椭圆中点A作水平线交于G,过A点作AG的垂线AF,并标记AF向量;将G绕A点旋转180度到G’点,在椭圆上任取一点H,将H沿AF向量的方向平移到H’点,再以H为主动点,H’为被动对象构造轨迹,得到圆柱的上底面也是一个椭圆;同理将G与G’也平移上去,再连接棱,即得到圆柱;( 图2) 3、在棱G’C上任取一点N,标记G’N向量,把H按照J’N向量的方向平移到H’’点,同样以H为主动点,H’’为被动对象构造轨迹,得到截面;(图3)

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

opengl立方体的简单三维交互式几何变换实验报告+代码

立方体的简单三维交互式几何变换 这个学期对opengl的学习,使我对计算机图形学的一些算法过程有了更多的了解。因为对三维图形的显示比较感兴趣,就做了立方体的简单三维交互式几何变换。 功能:键盘的方向键实现立方体的上下左右平移;A键,S键分别实现向前,向后旋转;J键,K键分别实现放大,缩小;C键退出。 程序模块: 1.该模块为绘制一个立方体。 void DrawBox() { glBegin(GL_QUADS); //前面 glColor3f(1,0,0); glVertex3f(-1.0f, -1.0f, 1.0f); // 四边形的左下 glVertex3f( 1.0f, -1.0f, 1.0f); // 四边形的右下 glVertex3f( 1.0f, 1.0f, 1.0f); // 四边形的右上 glVertex3f(-1.0f, 1.0f, 1.0f); // 四边形的左上 // 后面 glColor3f(0,1,0); glVertex3f(-1.0f, -1.0f, -1.0f); // 四边形的右下 glVertex3f(-1.0f, 1.0f, -1.0f); // 四边形的右上

glVertex3f( 1.0f, -1.0f, -1.0f); // 四边形的左下 // 顶面 glColor3f(0,0,1); glVertex3f(-1.0f, 1.0f, -1.0f); // 四边形的左上glVertex3f(-1.0f, 1.0f, 1.0f); // 四边形的左下glVertex3f( 1.0f, 1.0f, 1.0f); // 四边形的右下glVertex3f( 1.0f, 1.0f, -1.0f); // 四边形的右上// 底面 glColor3f(1,1,0); glVertex3f(-1.0f, -1.0f, -1.0f); // 四边形的右上glVertex3f( 1.0f, -1.0f, -1.0f); // 四边形的左上glVertex3f( 1.0f, -1.0f, 1.0f); // 四边形的左下glVertex3f(-1.0f, -1.0f, 1.0f); // 四边形的右下// 右面 glColor3f(0,1,1); glVertex3f( 1.0f, -1.0f, -1.0f); // 四边形的右下glVertex3f( 1.0f, 1.0f, -1.0f); // 四边形的右上glVertex3f( 1.0f, 1.0f, 1.0f); // 四边形的左上glVertex3f( 1.0f, -1.0f, 1.0f); // 四边形的左下// 左面 glColor3f(1,0,1);

几何画板实验报告要点

实验一数学教学软件基本操作 一、实验目的: 二、实验内容: 1、作出三角形的垂心。 2、作出三角形的外接圆与内切圆。 外接圆 内切圆 3、验证:三角形三边的中点、三条高的垂足、垂心到三顶点的中点共圆。

4、作出两圆的内外公切线。 三、实验步骤 1、作出三角形的垂心。 步骤: ○1构造△ABC; ○2选中点A和线段BC,构造垂线; ○3同理,构造线段AB、BC上的垂线; ○4交点D即为垂心。 2、作出三角形的外接圆与内切圆。 外接圆步骤:

○1构造△ABC; ○2选中线段AB,构造中点E; ○3选中线段AB和点E,构造垂线; ○4同理构造线段AC、BC上的中垂线,交点为K; ○5选中点K、A,构造圆。 内切圆步骤: ○1构造△ABC; ○2选中线段AB、AC,构造角平分线; ○3选中AB、BC,构造角平分线,交点为D; ○4选中A、D,构造圆。 3、验证:三角形三边的中点、三条高的垂足、垂心到三顶点的中点共圆。 步骤: ○1构造△ABC; ○2选中线段AB、BC、AC分别构造中点D、E、F; ○3选中线段BC和点A构造垂线,垂足为H,同理得到垂足L、K,三条 垂线的交点为M; ○4选中点A和M构造线段,再选中线段AM构造中点O,同理得到点N、P; ○5选中点E、P、O构造过三点的弧,选中点O、D、E构造过三点的弧; 4、作出两圆的内外公切线。 外公切线步骤: ○1构造两圆C、D,圆心分别为C、D(注:圆C 的半径大于圆 D 的半径); ○2选中点C、D,构造直线CD; ○3在圆D 上任意取一点F,连接构造线段DF; ○4选中点C、线段DF,构造平行线交圆 C 于点G、P ○5选中点G、F,再构造直线GF 交直线CD 于点H; ○6选中点D、H,构造线段DH,再构造线段DH 的中点M; ○7依次选中M、D(H),接着“构造”—“以圆心和圆周上的点作圆”—“生成一个圆M 交圆 D 于点O 和N ; ○8分别构造出直线OH 和直线NH,即为所求的外公切线。 内公切线步骤: ○1构造线段FP 交直线CD 于点Q; ○2选中点C、Q,构造线段,再构造中点R; ○3依次选中点R、C(Q),构造圆交圆C 于点S、T; ○4分别构造出直线QT 和直线QS,即为所求的内公切线。 四、实验的结论及实验中存在的问题。

X-opengl立方体的简单三维交互式几何变换实验报告代码

立方体的简单三维交互式几何变换 立方体的简单三维交互式几何变换。 功能:键盘的方向键实现立方体的上下左右平移;A键,S键分别实现向前,向后旋转;J键,K键分别实现放大,缩小;C键退出。 程序模块: 1.重绘回调函数,在窗口首次创建或用户改变窗口尺寸时被调用。void reshape(int w, int h) { glViewport(0, 0, w, h);// 指定视口的位置和大小 glMatrixMode(GL_PROJECTION); glLoadIdentity(); //glFrustum(-1.0, 1.0, -1.0, 1.0, 3.1, 10.0); //gluPerspective(45,1,0.1,10.0); glOrtho(-2.0, 2.0, -2.0, 2.0, 2.0, 10.0); } 2.绘制一个立方体。 void DrawBox() { glBegin(GL_QUADS); //前面

glColor3f(1,0,0); glVertex3f(-1.0f, -1.0f, 1.0f); // 四边形的左下glVertex3f( 1.0f, -1.0f, 1.0f); // 四边形的右下glVertex3f( 1.0f, 1.0f, 1.0f); // 四边形的右上glVertex3f(-1.0f, 1.0f, 1.0f); // 四边形的左上// 后面 glColor3f(0,1,0); glVertex3f(-1.0f, -1.0f, -1.0f); // 四边形的右下glVertex3f(-1.0f, 1.0f, -1.0f); // 四边形的右上glVertex3f( 1.0f, 1.0f, -1.0f); // 四边形的左上glVertex3f( 1.0f, -1.0f, -1.0f); // 四边形的左下 // 顶面 glColor3f(0,0,1); glVertex3f(-1.0f, 1.0f, -1.0f); // 四边形的左上glVertex3f(-1.0f, 1.0f, 1.0f); // 四边形的左下glVertex3f( 1.0f, 1.0f, 1.0f); // 四边形的右下glVertex3f( 1.0f, 1.0f, -1.0f); // 四边形的右上// 底面 glColor3f(1,1,0); glVertex3f(-1.0f, -1.0f, -1.0f); // 四边形的右上glVertex3f( 1.0f, -1.0f, -1.0f); // 四边形的左上glVertex3f( 1.0f, -1.0f, 1.0f); // 四边形的左下

的几何画板实例教程

上篇用几何画板做数理实验 图1-0、1 我们主要认识一下工具箱与状态栏,其它的功能在今后的学习过程中将学会使用。 案例一四人分饼 有一块厚度均匀的三角形薄饼,现在要把它平 均分给四个人,应该如何分? 图1-1、1 思路:这个问题在数学上就就是如何把一个三角形分成面积相等的四部分。 方案一:画三角形的三条中位线,分三角形所成的四部分 面积相等,(其实四个三角形全等)。如图1-1、2。 图1-1、2

方案二:四等分三角形的任意一边,由等底等高的三角形面积相等,可以得出四部分面积相等,如图1-1、3。 图 1-1、3 用几何画板验证: 第一步:打开几何画板程序,这时出现一个新绘图文件。 说明:如果几何画板程序已经打开,只要由菜单“文件”→“新绘图”,也可以新建一个绘图文件。第二步:(1)在工具箱中选取“画线段”工具; (2)在工作区中按住鼠标左键拖动,画出一条线段。如图 1-1、4。 注意:在几何画板中,点用一个空心的圈表示。 图1-1、4 第三步:(1)选取“文本”工具;(2)在画好的点上单击左键, 可以标出两点的标签,如图1-1、5: 注意:如果再点一次,又可以隐藏标签,如果想改标签为其它字母,可以这样做: 用“文本”工具双击显示的标签,在弹出的对话框中进行修改,(本例中我们不做修改)。如图1-1、6 图1-1、6 在后面的操作中,请观察图形,根据需要标出点或线的标签,不再一一说明 B 图1-1、5 第四步:(1)再次选取“画线段”工具,移动鼠标与点A重 合,按左键拖动画出线段AC;(2)画线段BC,标出标签C,如 图1-1、7。 注意:在熟悉后,可以先画好首尾相接的三条线段后再标 上标签更方便。 B 图1-1、7 第五步:(1) 用“选择”工具单击线段AB,这时线段上出现 两个正方形的黑块,表示线段处于被选取状态;(2) 由菜单 “作图”→“中点”,画出线段AB的中点,标上标签。得 如图1-1、8。 注意:如果被选取的就是点,点的外面会有一个粗黑圆 圈。在几何画板中,选取线段就是不包括它的两个端点 的,以后的问题都就是这样,如果不小心多选了某个对象,可以按Shi f t键后用左键再次单击该对象取消选取。 B D 图1-1、8

图像处理实验报告

实验报告 实验课程名称:数字图像处理 班级:学号:姓名: 注:1、每个实验中各项成绩按照10分制评定,每个实验成绩为两项总和20分。 2、平均成绩取三个实验平均成绩。 2016年 4 月18日

实验一 图像的二维离散傅立叶变换 一、实验目的 掌握图像的二维离散傅立叶变换以及性质 二、实验要求 1) 建立输入图像,在64?64的黑色图像矩阵的中心建立16?16的白色矩形图像点阵, 形成图像文件。对输入图像进行二维傅立叶变换,将原始图像及变换图像(三维、中心化)都显示于屏幕上。 2) 调整输入图像中白色矩形的位置,再进行变换,将原始图像及变换图像(三维、中 心化)都显示于屏幕上,比较变换结果。 3) 调整输入图像中白色矩形的尺寸(40?40,4?4),再进行变换,将原始图像及变 换图像(三维、中心化)都显示于屏幕上,比较变换结果。 三、实验仪器设备及软件 HP D538、MATLAB 四、实验原理 傅里叶变换作为分析数字图像的有利工具,因其可分离性、平移性、周期性和共轭对称性可以定量地方分析数字化系统,并且变换后的图像使得时间域和频域间的联系能够方便直观地解决许多问题。实验通过MATLAB 实验该项技能。 设),(y x f 是在空间域上等间隔采样得到的M ×N 的二维离散信号,x 和y 是离散实变量,u 和v 为离散频率变量,则二维离散傅里叶变换对一般地定义为 ∑∑ -=-=+-= 101 )],( 2ex p[),(1 ),(M x N y N yu M xu j y x f MN v u F π,1,0=u …,M-1;y=0,1,…N-1 ∑∑-=-=+=101 )],( 2ex p[),(),(M x N y N uy M ux j v u F y x f π ,1,0=x …,M-1;y=0,1,…N-1 在图像处理中,有事为了讨论上的方便,取M=N ,这样二维离散傅里叶变换对就定义为 ,]) (2ex p[),(1 ),(101 ∑∑ -=-=+- = N x N y N yu xu j y x f N v u F π 1,0,=v u …,N-1 ,]) (2ex p[ ),(1 ),(101 ∑∑-=-=+= N u N v N vy ux j v u F N y x f π 1,0,=y x ,…,N-1 其中,]/)(2exp[N yv xu j +-π是正变换核,]/)(2exp[N vy ux j +π是反变换核。将二维离散傅里叶变换的频谱的平方定义为),(y x f 的功率谱,记为 ),(),(|),(|),(222v u I v u R v u F v u P +== 功率谱反映了二维离散信号的能量在空间频率域上的分布情况。 五、实验步骤、程序及结果: 1、实验步骤: (1)、编写程序建立输入图像; (2)、对上述图像进行二维傅立叶变换,观察其频谱 (3)、改变输入图像中白框的位置,在进行二维傅里叶变换,观察频谱;

几何画板课件制作实例教程

几何画板课件制作实例教程_小学数学篇 几何画板课件制作实例教程 第一章小学数学 1. 1数与代数 实例1 整数加法口算出题器 实例2 5以内数的分成 实例3 分数意义的动态演示 实例4 求最大公约数和最小公倍数 实例5 直线上的追及问题 1.2 空间与图形 实例6 三角形分类演示 实例7 三角形三边的关系 实例8 三角形内角和的动态演示 实例9 三角形面积公式的推导 实例10 长方形周长的动态演示 实例11 长方体的初步认识 实例12 长方体的体积 1.3 统计与概率 实例13 数据的收集与整理 实例14 折线统计图 “几何画板”软件以其动态探究数学问题的功能,为数学教育活动施行“动手实践、自主探索、合作交流”的学习方式提供了可能性。经笔者们的尝试,她除了

可在小学数学中“空间与图形”这个学习领域中大展手脚,在“数与代数”、“统计与概率”这两个学习领域中,同样也能折射出其独特的魅力光芒。 小学生的数学学习心理的特点决定其数学学习活动需以直观的形象作为探索数学问题的支撑,以操作、实验作为主要途径之一。因此,本章实例课件的制作以几何画板善于表现数学思想的特色积极渗透各种数学思想,注重以课件所蕴含的思想推行“致力于改变学生的学习方式”教学策略,同时也努力实现学生个体在自主操作与学习课件中充分进行“观察、实验、猜测、验证、推理与交流”等数学活动,促使学生在课件的引导下亲身体验“做数学”,实现数学的“再创造”。 1. 1数与代数 培养学生的数感与符号感是“数与代数”学习内容的一个很重要的目标,而采用几何画板能较轻易地实现“数形结合”。以“数形结合”的方式可帮助小学生体会数与运算的意义以及其所含的数学思想。因此,本节实例课件的设计体现了促进学生经历从实际问题到抽象出数与运算的全过程的观念,同时也充分展露了几何画板善于以直观的图形表现抽象的数学思想的特点。 实例1 整数加法口算出题器 【课件效果】 新课程标准规定:小学一年级学生要求熟练掌握20以内整数的口算加减法。编制“口算出题器”类课件,以往可能要在可编程类软件的平台上进行,现在却可以利用几何画板的参数【动画】功能,较轻易地实现。 如图1-1所示,单击按钮,出示随机加法算式,单击按钮,显示当前算式的结果。本实例适用于整数加法意义的教学、20以内的加法口算测试等,显示了信息技术与学科整合的优势。 整数加法口算出题器 4+8= 图1.1 图1-1 课件效果图 【构造分析】 1.技术要点 υ几何画板软件参数【动画】的运用 υ【带参数的迭代】的运用 2.思想分析

几何画板实验报告8

实验报告 姓名 学号 日期 一、实验目的 二、实验内容及步骤 1.在极坐标系中绘制θ ρcos 1?-= e ep ,其中e,p 为待定常数. 步骤: ①先做出两条垂直于x 轴正向的直线,在直线上任取两点A 和B ,度量它们纵坐标的值,分别令为e 和p. ②绘制新函数θ cos 1?-= e ep r ③拖动点A,我们可发现当10<e 时,原方程表示双曲线. 2.作出???==θ θtan sec b y a x ,θ为参数 .

步骤: ①在坐标系中做两条垂直于x 轴的直线,分别直线上任取两点A 、B ,计算这两点的纵坐标,分别用a 、b 来表示;画出单位圆O,度量DFE ∠,作为参数θ的值. ②分别计算θθtan sec b a 和,分别以它们为横、纵坐标做出点; ③以D 为主动点,()θ θtan sec b a ,为被动点,做轨迹。 3.在极坐标系中做出曲线???==) cos() sin(bt at r θ(0≤t <2π),调整a ,b 的值,得到不同的图象并给 这些图像取名字。 数字8

翅膀 四叶草

两个月牙 步骤: ①先在直角坐标系中做两条x 轴的垂线,分别在上面取两点A 和B ,度量他们的纵坐标记为a ,b 。在轴上标出点(2π,0),连接该点与坐标中心,在该线段上选中任意一点C 度量横坐标计为t 。 ②切换至极坐标系,计算)sin(t a ?和)cos(t b ?的值,分别以它们为横纵坐标绘制点,以该点为被动点,C 为主动点构造轨迹。 4. 在极坐标系中画出曲线? ??=+=t bt a r θ) sin(,()π2 0≤≤t 的图像,调整a 与b 的值得到不同的图像。 步骤: ①先在直角坐标系中做两条x 轴的垂线,分别在上面取两点A 和B ,度量他们的 纵坐标记为a ,b 。在轴上标出点(-2π,0),连接该点与坐标中心,在该线段上选中任意一点C 度量横坐标计为t 。 ②切换至极坐标系,计算)sin(t b a ?+的值,分别以)sin(t b a ?+及t 为横纵坐标做点D ,以点D 为被动点,C 为主动点构造轨迹。

北航数字图象处理实验报告

数字图像处理实验报告 实验二图像变换实验 1.实验目的 学会对图像进行傅立叶等变换,在频谱上对图像进行分析,增进对图像频域上的感性认识,并用图像变换进行压缩。 2.实验内容 对Lena或cameraman图像进行傅立叶、离散余弦、哈达玛变换。在频域,对比他们的变换后系数矩阵的频谱情况,进一步,通过逆变换观察不同变换下的图像重建质量情况。 3. 实验要求 实验采用获取的图像,为灰度图像,该图像每象素由8比特表示。具体要求如下: (1)输入图像采用实验1所获取的图像(Lena、Cameraman); (2)对图像进行傅立叶变换、获得变换后的系数矩阵; (3)将傅立叶变换后系数矩阵的频谱用图像输出,观察频谱; (4)通过设定门限,将系数矩阵中95%的(小值)系数置为0,对图像进行反变换,获得逆变换后图像; (5)观察逆变换后图像质量,并比较原始图像与逆变后的峰值信噪比(PSNR)。 (6)对输入图像进行离散余弦、哈达玛变换,重复步骤1-5; (7)比较三种变换的频谱情况、以及逆变换后图像的质量(PSNR)。 4. 实验结果 1. DFT的源程序及结果 J=imread('10021033.bmp'); P=fft2(J); for i=0:size(P,1)-1 for j=1:size(P,2) G(i*size(P,2)+j)=P(i+1,j); end end Q=sort(G); for i=1:size(Q,2) if (i=size(Q,2)*0.95) t=Q(i); end end G(abs(G)

数字图像处理图像变换实验报告.

实验报告 实验名称:图像处理 姓名:刘强 班级:电信1102 学号:1404110128

实验一图像变换实验——图像点运算、几何变换及正交变换一、实验条件 PC机数字图像处理实验教学软件大量样图 二、实验目的 1、学习使用“数字图像处理实验教学软件系统”,能够进行图像处理方面的 简单操作; 2、熟悉图像点运算、几何变换及正交变换的基本原理,了解编程实现的具体 步骤; 3、观察图像的灰度直方图,明确直方图的作用和意义; 4、观察图像点运算和几何变换的结果,比较不同参数条件下的变换效果; 5、观察图像正交变换的结果,明确图像的空间频率分布情况。 三、实验原理 1、图像灰度直方图、点运算和几何变换的基本原理及编程实现步骤 图像灰度直方图是数字图像处理中一个最简单、最有用的工具,它描述了一幅图像的灰度分布情况,为图像的相关处理操作提供了基本信息。 图像点运算是一种简单而重要的处理技术,它能让用户改变图像数据占据的灰度范围。点运算可以看作是“从象素到象素”的复制操作,而这种复制操作是通过灰度变换函数实现的。如果输入图像为A(x,y),输出图像为B(x,y),则点运算可以表示为: B(x,y)=f[A(x,y)] 其中f(x)被称为灰度变换(Gray Scale Transformation,GST)函数,它描述了输入灰度值和输出灰度值之间的转换关系。一旦灰度变换函数确定,该点运算就完全确定下来了。另外,点运算处理将改变图像的灰度直方图分布。点运算又被称为对比度增强、对比度拉伸或灰度变换。点运算一般包括灰度的线性变换、阈值变换、窗口变换、灰度拉伸和均衡等。 图像几何变换是图像的一种基本变换,通常包括图像镜像变换、图像转置、图像平移、图像缩放和图像旋转等,其理论基础主要是一些矩阵运算,详细原理可以参考有关书籍。 实验系统提供了图像灰度直方图、点运算和几何变换相关内容的文字说明,用户在操作过程中可以参考。下面以图像点运算中的阈值变换为例给出编程实现的程序流程图,如下:

相关文档
最新文档