搜档网
当前位置:搜档网 › 实验二维图形基本变换

实验二维图形基本变换

实验二维图形基本变换
实验二维图形基本变换

实验一二维图形的基本变换

一.实验目的

1、掌握CAD图形处理的原理和方法;

2、通过上机操作,熟悉多边形的平移、比例和旋转变换,掌握二维图形的基本变换。

3、理解CAD对图形进行复合变换(平移、比例和旋转变换)的过程。

二.实验要求

1、上机调试所编程序,实现图形的绘制、平移变换、比例变换和旋转变换。

2、二维图形各点的坐标、平移、比例、旋转角度可由用户任意输入,原图形和变换后的图形必须同时显示在显示器上。

三.实验设备

1、计算机系统;

2、安装Turbo C或其他C语言集成开发工具

四.实验原理

在计算机图形处理中,经常需要对已经生成的图形进行几何变换处理。例如,改变原始图形的大小、移动图形到某一指定位置或根据需要将图形旋转某一个角度,这就要求图形的处理软件能够实现缩放、平移、旋转等几何变换。由于点是构成一个几何形体的最基本的元素,而一幅二维图形可以看成是一个点集,如三角形有三个特征

点……,因此,我们就可以把对图形的几何变换归结对点的变换。通过对构成几何图形的特征点集的几何变换即可实现整个图形的几何变换。即如何实现一个旧点到变化后新点的计算求解是本次实验的重点。

我们给出平移、比例、旋转变换的矩阵分别为:

平 移: T t =????

??????1010001n m (m,n 分别为x,y 方向上的平移量) 全比例: T s =????

??????1000000b a (a,b 分别为x,y 方向上的比例因子)

旋 转: T r =????

??????-1000cos sin 0sin cos θθθθ (θ为旋转角,逆时针为正)

假设一几何图形由A(x A,y A ) B(x B ,y B ) C(x C ,y C ) D(x D ,y D )四点组成,那么变换后四点坐标为A ’(x ’A,y ’A ) B ’(x ’B ,y ’B ) C ’(x ’C ,y ’C ) D ’(x ’D ,y ’D )

平移:??????????????1111''''''''D D C C B B A A Y X Y X Y X Y X =????????

??????1111D D C C B B A A Y X Y X Y X Y X T t =??????????????1111D D C C B B A A Y X Y X Y X Y X ??????????1010001n m =??????

????????++++++++1111n Y m X n Y m X n Y m X n Y m X D D C C B B A A 比例:??????????????1111''''''''D D C C B B A A Y X Y X Y X Y X =??????????????1111D D C C B B A A Y X Y X Y X Y X T s =??????????????1111D D C C B B A A Y X Y X Y X Y X ??????????1000000b a =??????

????????1111D D C C B B B A bY aX bY aX bY aX bY aX

旋转:??????????????1111''''''''D D C C B B A A Y X Y X Y X Y X =??????????????1111D D C C B B A A Y X Y X Y X Y X T r =??????????????1111D D C C B B A A Y X Y X Y X Y X ????

??????-1000cos sin 0sin cos θθθθ =?????

???????+-+-+-+-1cos sin sin cos 1cos sin sin cos 1cos sin sin cos 1cos sin sin cos θθθθθθθθθθθθθθθθC D D D C C C C B B B B

A A A A Y X Y X Y X Y X Y X Y X Y X Y X 由以上的推导过程,我们得到变换前点与变化后点的关系,进而可以用图形处理软件实现相应的变换。

五.实验步骤:(通过实验具体描述)

编制在屏幕上绘制一任意图形的程序、并进行平移变换、比例变换、旋转变换等基本变换。

六.程序流程图:

七.实验注意事项:

该实验在机房进行上机编程,应注意机房的上机秩序,如出现断电、死机等问题应及时向老师汇报,由实验教师解决。不能自己随意处理,更不能够随意打开机箱。

八.实验预习要求:

实验前认真预习实验原理,对所用编程语言要预先熟悉,要求在给定时间内编程并显示出结果。

实验报告要带入具体数据,写清实验原理,画出程序框图,列出程序清单。

九.程序清单(B5打印)

十.实验处理结果(B5打印)或在程序空白处画出

十一.实验心得体会

二维几何图形变换.

// 二维几何图形变换.cpp : 定义应用程序的类行为。 // #include "stdafx.h" #include "二维几何图形变换.h" #include "MainFrm.h" #include "二维几何图形变换Doc.h" #include "二维几何图形变换View.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CMyApp BEGIN_MESSAGE_MAP(CMyApp, CWinApp) ON_COMMAND(ID_APP_ABOUT, OnAppAbout) // 基于文件的标准文档命令 ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) // 标准打印设置命令 ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup) END_MESSAGE_MAP() // CMyApp 构造 CMyApp::CMyApp() { // TODO: 在此处添加构造代码, // 将所有重要的初始化放置在InitInstance 中 } // 唯一的一个CMyApp 对象 CMyApp theApp; // CMyApp 初始化 BOOL CMyApp::InitInstance() {

// 如果一个运行在Windows XP 上的应用程序清单指定要 // 使用ComCtl32.dll 版本6 或更高版本来启用可视化方式, //则需要InitCommonControls()。否则,将无法创建窗口。 InitCommonControls(); CWinApp::InitInstance(); // 初始化OLE 库 if (!AfxOleInit()) { AfxMessageBox(IDP_OLE_INIT_FAILED); return FALSE; } AfxEnableControlContainer(); // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("应用程序向导生成的本地应用程序")); LoadStdProfileSettings(4); // 加载标准INI 文件选项(包括MRU) // 注册应用程序的文档模板。文档模板 // 将用作文档、框架窗口和视图之间的连接 CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CMyDoc), RUNTIME_CLASS(CMainFrame), // 主SDI 框架窗口 RUNTIME_CLASS(CMyView)); if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate); // 分析标准外壳命令、DDE、打开文件操作的命令行 CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // 调度在命令行中指定的命令。如果 // 用/RegServer、/Register、/Unregserver 或/Unregister 启动应用程序,则返回FALSE。if (!ProcessShellCommand(cmdInfo)) return FALSE; // 唯一的一个窗口已初始化,因此显示它并对其进行更新 m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow();

二维图形基本变换规则及应用

二维图形基本变换规则及应用 (07级信息与计算科学傅强070350221) 摘要 利用计算机绘制的图形与我们日常见到的图片、照片是有相似之处。除图片、照片等图形外,自然界中还存在丰富多彩的有形物体。一般,根据图形所在空间的不同,可将图形分为:三维图形和二维图形。图片、照片属二维图形,自然界中形形色色的物体属于三维图形。在计算机绘图的过程中,二维图形的绘制是绘制三维图形的基础,研究计算机图形的生成必须从研究二维图形开始。计算机绘制图形时,无论图形多么复杂,都是利用一些相应图形基元经过图形变换组成的。在计算机绘图中,经常用到图形变换,图形变换是指图形信息经过几何变换后产生新的图形。基本的几何变换研究物体坐标在直角坐标系内的平移、旋转和变比等规则。本文主要介绍二维图形的一些基本变换规则及其应用 关键词:直角坐标系内;平移;旋转;应用 ABSTRACT Using the computer graphics and see our daily drawings, photographs are similarities. Besides the drawings, photographs and other graphic, nature also exist rich and colorful tangible objects. In general, according to the different space, the graphics can be divided into: 3d graphics and 2d graphics. The drawings, photographs of 2d graphics, all kinds of objects in the nature belongs to 3d graphics. In computer graphics, the process of 2d graphics rendering 3d graphics drawing is the basis, research of computer graphics generation must start from the 2d graphics. Computer graphics, no matter how complex, graphics are using some corresponding graphic element composed by graphical transformation. In computer graphics, often use graphics transformation, graphics transform refers to the graphical information through after new graphics geometry transform. The basic research object coordinate geometry transform in cartesian coordinate system in translation, rotation and change rules than etc. This paper mainly introduces some basic transformation of 2d graphics and its application in the rules. Keywords: a cartesian coordinate system, Translation, Rotating, application

实验二维图形基本变换

实验一二维图形的基本变换 一.实验目的 1、掌握CAD图形处理的原理和方法; 2、通过上机操作,熟悉多边形的平移、比例和旋转变换,掌握二维图形的基本变换。 3、理解CAD对图形进行复合变换(平移、比例和旋转变换)的过程。 二.实验要求 1、上机调试所编程序,实现图形的绘制、平移变换、比例变换和旋转变换。 2、二维图形各点的坐标、平移、比例、旋转角度可由用户任意输入,原图形和变换后的图形必须同时显示在显示器上。 三.实验设备 1、计算机系统; 2、安装Turbo C或其他C语言集成开发工具 四.实验原理 在计算机图形处理中,经常需要对已经生成的图形进行几何变换处理。例如,改变原始图形的大小、移动图形到某一指定位置或根据需要将图形旋转某一个角度,这就要求图形的处理软件能够实现缩放、平移、旋转等几何变换。由于点是构成一个几何形体的最基本的元素,而一幅二维图形可以看成是一个点集,如三角形有三个特征

点……,因此,我们就可以把对图形的几何变换归结对点的变换。通过对构成几何图形的特征点集的几何变换即可实现整个图形的几何变换。即如何实现一个旧点到变化后新点的计算求解是本次实验的重点。 我们给出平移、比例、旋转变换的矩阵分别为: 平 移: T t =???? ??????1010001n m (m,n 分别为x,y 方向上的平移量) 全比例: T s =???? ??????1000000b a (a,b 分别为x,y 方向上的比例因子) 旋 转: T r =???? ??????-1000cos sin 0sin cos θθθθ (θ为旋转角,逆时针为正) 假设一几何图形由A(x A,y A ) B(x B ,y B ) C(x C ,y C ) D(x D ,y D )四点组成,那么变换后四点坐标为A ’(x ’A,y ’A ) B ’(x ’B ,y ’B ) C ’(x ’C ,y ’C ) D ’(x ’D ,y ’D ) 平移:??????????????1111''''''''D D C C B B A A Y X Y X Y X Y X =???????? ??????1111D D C C B B A A Y X Y X Y X Y X T t =??????????????1111D D C C B B A A Y X Y X Y X Y X ??????????1010001n m =?????? ????????++++++++1111n Y m X n Y m X n Y m X n Y m X D D C C B B A A 比例:??????????????1111''''''''D D C C B B A A Y X Y X Y X Y X =??????????????1111D D C C B B A A Y X Y X Y X Y X T s =??????????????1111D D C C B B A A Y X Y X Y X Y X ??????????1000000b a =?????? ????????1111D D C C B B B A bY aX bY aX bY aX bY aX

计算机图形学 二维变换 实验代码

#include "stdio.h" #include "conio.h" #include"graphics.h" #include "math.h" struct point { int x; int y; }triangle[3]; void ini() { triangle[0].x = 20; triangle[0].y = 70; triangle[1].x = 20; triangle[1].y = 100; triangle[2].x = 120; triangle[2].y = 70; setcolor(WHITE); line(triangle[0].x,triangle[0].y,triangle[1].x,triangle[1].y); line(triangle[0].x,triangle[0].y,triangle[2].x,triangle[2].y); line(triangle[1].x,triangle[1].y,triangle[2].x,triangle[2].y); } void move(int dx, int dy) { int i; for(i = 0; i < 3; i++) { line((triangle[i].x+dx),(triangle[i].y+dy),(triangle[(i+1)%3].x+dx),(triangle[(i+1)%3].y+dy)); } getch(); setcolor(0); for(i = 0; i < 3; i++) { line((triangle[i].x+dx),(triangle[i].y+dy),(triangle[(i+1)%3].x+dx),(triangle[(i+1)%3].y+dy)); } } void zoom(int sx,int sy) {

二维离散傅立叶变换

图像的二维离散傅立叶变换 一、实验目的 掌握图像的二维离散傅立叶变换以及性质 二、实验要求 1) 建立输入图像,在64?64的黑色图像矩阵的中心建立16?16的白色矩形图像点阵, 形成图像文件。对输入图像进行二维傅立叶变换,将原始图像及变换图像(三维、中心化)都显示于屏幕上。 2) 调整输入图像中白色矩形的位置,再进行变换,将原始图像及变换图像(三维、中 心化)都显示于屏幕上,比较变换结果。 3) 调整输入图像中白色矩形的尺寸(40?40,4?4),再进行变换,将原始图像及变 换图像(三维、中心化)都显示于屏幕上,比较变换结果。 三、实验仪器设备及软件 HP D538、MATLAB 四、实验原理 设),(y x f 是在空间域上等间隔采样得到的M ×N 的二维离散信号,x 和y 是离散实变量,u 和v 为离散频率变量,则二维离散傅里叶变换对一般地定义为 ∑∑-=-=+-=1010)],(2exp[),(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 0)],( 2e x 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 ,这样二维离散傅里叶变换对就定义为,])(2exp[),(1),(1010∑∑-=-=+-=N x N y N yu xu j y x f N v u F π 1,0,=v u …,N-1 ,])(2exp[),(1),(1010∑∑-=-=+=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 的功率谱,记为

二维图形几何变换实验报告

计算机图形学实验报告

实验4二维图形几何变换 一实验目的 1)掌握3*3矩阵乘法运算的编程实现: 2)掌握平移、比例、旋转三种基本二维几何变换矩阵生成: 3)掌握相对于任意参考点的二维复合变换矩阵生成。 二实验要求 1)设计实现二维图形变换类,具有平移、比例、旋转二维几何变换功能,以及相对于任意参考点的二维复合变换功能; 2)将2.2节直线类所绘制的如图2-3所示的菱形线框,绕最上端A点匀速旋转,并要求相对于A点来回缩放。 3)使用双缓冲机制进行图形绘制,避免运动闪烁,所有图形先绘制到用户自定的DC,绘制完成后再统一拷贝到屏幕DC。三实验步骤 第1步:打开2.2节(实验2)工程文件 直接使用2.2节(实验2)的MFC项目工程,及其中的直线类CLine. 第2步:二维点类CP2添加齐次坐标 在“Line.h/cpp”文件中的二维点类CP2的相关代码中添加齐次坐标,修改后的CP2类代码如下(带底纹部分为添加的代码)。 “Line.h”中相关代码 class CP2 {

public: CP2(); virtual~CP2(); CP2(double,double); public: double x; double y; double w; }; class CLine { public: CLine(); virtual~CLine(); void SetLineColor(COLORREF); void MoveTo(CP2); void MoveTo(double,double); void LineTo(CP2, CDC*); void LineTo(double,double, CDC*); public: CP2 P0; CP2 P1; COLORREF clr; }; ===================================================================== Line.cpp #include "stdafx.h" #include "Line.h" #include "math.h" #define Round(d) int (floor(d+0.5)) CP2::CP2() { x=0.0; y=0.0; w=1.0; } CP2::~CP2() {} CP2::CP2( double x,double y) { this->x =x; this->y =y; this->w =1;

计算机图形学实验:二维图形变换

实验三二维图形变换 一、实验任务 1. 通过二维几何变换的数学模型,编写缩放、旋转、对称变换; 2. 实现图形变换的交互式操作:缩放、旋转、对称变换等; 二、实验内容 1. 放大缩小变换 放大缩小变换公式为:x ’=x..S x , y ’=y.S y ; 其中S x ,S y 分别为x,y 方向的放缩比例系数。 变换矩阵表达式为: [x ’ y ’ (1)S x =S y =1.5;等比例放大 (2)S x =S y =0.5;等比例缩小 2. 对称变换 包括以x 轴对称、y 轴对称和原点O 对称三种。由于屏幕坐标只有第一象限,我们可以将原点平移到(500,240)处。在第一象限画出一个三角形,然后分别求出三个对称图形。 3. 旋转变换 将图形上的点(x ,y )旋转θ角度,得到新的坐标(x ’,y ’ )为: x ’=xcos θ-ysin θ, y ’=xsin θ+ycos θ; [x ’ y ’ 4. 三、设计思路 1. 通过二维几何变换的数学模型,编写缩放、旋转、对称变换; 2. 以(500,240)为原点建立图形变换的参考坐标系; 3. 通过键盘按键控制图形的缩放、旋转、对称变换; 4. 变换图形设定为以Pt[0](540,220)、Pt[1](670,130)、Pt[2](560,120)为顶点的 三角形。 步骤:

1.建立Trans工程文件; 2.利用Resource View设计菜单,如图所示; 3.在CTransView视图类中添加消息映射函数; 4.添加自定义的成员变量: CPoint Pt[3];//三角形定点数组 float dAngle;//每一次旋转的角度 在视图类CPP文件的构造函数中初始化成员变量 Pt[0].x = 540; Pt[0].y = 220; Pt[1].x = 670; Pt[1].y = 130; Pt[2].x = 560; Pt[2].y = 120; dAngle = 0; 5.在视图类的OnDraw()函数中加入下列代码,实现视图绘图。

二维图形的几何变换

XX大学计算机科学与技术学院 计算机科学与技术系上机实验报告 课程名称:计算机图形学班级:实验日期:2012-04-05 姓名:学号:指导教师: 实验序号:3 实验成绩: 一、实验名称 二维图形的几何变换 二、实验目的及要求 目的: 掌握二维图形的基本几何变换:位置改变(平移、旋转) 要求: 1. 实现二维图形的集合变换。 2. 书写实验报告。 三、实验环境 1.Win 7 2.Visual Studio 2010 四、实验原理 1.平移变换 平移变换将一点P沿直线路径从一个坐标集团移动到另一个坐标位置的一个重定位过程。如果点p1(x1,y1.z1)是由点p(x,y,z)在x轴,y轴和z轴分别移动tx,ty,tz距离得到的,则这两点坐标间的关系为 X1=x+tx, y1=y+ty,z1=z+tz 该式的矢量形式为:p1=p+T 其中,p1,p,T分别定义为发下向量: P1=[x1,y1,z1 ] p=[x,y,z] T=[tx,ty,tz] 2.二维图形变换主要是基于齐次坐标方程,通过一些简单的矩阵运算来实现: 二维齐次坐标变换的矩阵形式是:

i h g f e d c b a 矩阵的每个元素都有特殊含义.基中 e d b a 可以对图形进行缩放,旋转,对称,错切等变 换;f c 是对图形进行平移变换; h g 的对图形作投影变换;i 则是对图形整体进行缩放变 换. 例如:将一个图形在X 方向中平移tx 个单位,在Y 方向平移ty 个单位.其实现过程如下: ?? ??? ?????=??????????++=????????????????????=??????????1),(1110 1001111y x ty tx T ty y tx x y x ty tx y x 其中:x1,y1是变换后的坐标,x,y 是变换前的坐标,通过上述变换,(x,y)被平移了 P(tx,ty). 在二维平面上任何复杂的变换都可以通过上述基本变换的组合来实现.级合方式在计算机上主要体现在矩阵的乘法运算,即将各个简单变换的矩阵逆序相乘,就可以得到一个总的变换矩阵.利用这个总的变换矩阵就可以对图形进行复合变换. 五、实验步骤及算法描述 题目: 1.设有一三角形ABC,其中三个顶点为A(5,10),B(1,2),C(8,5),如三角形的顶点A 不变,将AB 和AC 边缩小一倍后,求缩小后的三角形对于直线-2x+4y+3=0的对称变换后的结果图。 2.将一四边形以原点为中心,以15°为间隔旋转 实验步骤及算法描述: 1. 依据算法、步骤编写源程序; 2. 编辑源程序并进行调试; 3. 进行运行测试,并结合情况进行调整; 4. 对运行结果进行保存与分析; 5. 打印源程序或把源程序以文件的形式提交; 6. 按格式书写实验报告。

二维图形的几何变换.doc

3、对1的图形进行旋转变换, 转坐标变换。 4、对1的图形进行对称变换, 进行的对称变换。 5、对1的图形进行错切变换, 进行的错切变换。 6、对1的图形进行比例变换, 绘制出变换后的几何图形, 绘制出变换后的几何图形, 绘制出变换后的儿何图形, 绘制出变换后的儿何图形, 并在下边标注出实施多少度的旋并在下边标注出实施对 什么坐标并在下边标注出实施对何种坐标并在下边标 注出实施的多少比例 计算机图形学实验报告 实验名称二维图形的儿何变换评分 实验日期_年_月_日指导教师 姓名专业班级学号 一、实验目的 1、复习不同的二维坐标变换公式。 2、掌握二维坐标变换公式的使用方法。 3、对二维坐标组合变换的灵活运用。 二、实验要求 1、在屏幕上绘制出较简单的儿何图形。 2、对1的图形进行平移变换,绘制出变换后的儿何图形,并在下边标注出实施x, y各多少的 平称坐标变换。 坐标变换。 7、为了进行比较,适当选择坐标,可将原图(变换前)及经过不同变换后的图形绘制在同一个屏幕上,设省不同的线形或颜色加以区分各种变换。 三、关键算法及实现原理 1、二维图形的变换实际上是一个变换矩阵,平面图形是由若干个二维点(阳,*)组成, 经过变换后的二维点(x'i,yi),其变换公式为:

对应于不同的变换,都是用矩阵乘法来计算坐标,只需改变变换矩阵即可。因此对每一种坐标变换编成一个了程序。 2、编程时的技巧 用数组将二维图形的特征坐标点(顶点)保存,将由特征坐标点(顶点)绘制出二维图形的命令编一个绘图子程序,调用绘图子程序绘制出变换以前的图形,根据不同的两维儿何变换,选用相应二维坐标变换公式(调用相应的子程序)将二维坐标进行坐标变换;再调用绘图了程序将变换后的坐标值在屏幕上绘制变换后的几何将图形,可选用不同的颜来区分各种不同儿何变换的图形。 四、程序调试中的问题 五、程序运行结果或数据 对四边形能完成单项二维变换(平移、比例、错切)的源程序 #include #include #include #include double xmax=639.0, ymax=399.0; double f[3][3],xx,yy; int scx(double xj) ( int x; x=(int)(xj+xmax/2); return(x); } int scy(double yj) { int y; y=ymax-(int)(yj+ymax/2); return(y); ) void parallel(double dx,double dy) f[0][0]= 1.0;f[0][ 1 ]=0.0;f[0][2]=0.0; f[l][0]=0.0;f[l][l]=1.0;f[l]⑵=0.0;

二维图形的简单变换

---------------------------------------------------------------最新资料推荐------------------------------------------------------ 二维图形的简单变换 学年设计报告设计题目: 用 C 语言实现简单 2D图形的绘制和变换作者姓名: 王兴超王天祥张涛朱龙飞席晓东所学专业: 网络工程专业指导老师: 赵瑞斌2019 年年 9 月月 2 号学年设计任务书学年设计题目用 C 语言实现简单 2D图形的绘制和变换组长王兴超学号2019211311 班级 11 网工(二)班组别软件第二组专业网络工程组员王兴超、王天祥、张涛、朱龙飞、席晓东指导教师赵瑞斌学年设计目的合理运用所学专业课(C 语言)设计一些小程序来解决实际问题学年设计所需环境微机房 YF3503 学年设计任务要求利用 C 语言编写代码进行图形变换学年设计工作进度计划序号起止日期工作内容分工情况 1 7.1~7.15 分析题目,查找并学习几何变换的相关知识全体成员 2 7.16~8.1 学习并熟悉 graphics.h 库函数绘制图形的方法与技巧王兴超,张涛,王天祥,朱龙飞 3 8.2~8.15 实现一些简单变换的思路,实行平移变换、比例变换、旋转变换等. 席晓东查找资料,王兴超,张涛代码 1 / 22

实现 4 8.16~8.25 总体界面与主函数的设计朱龙飞,王天祥,席晓东 5 8.26~8.28 对代码进行整体测试修改王兴超,张涛 6 8.29~9.2 完成设计报告王兴超,朱龙飞,王天祥教研室审核意见: 教研室主任签字: 年月日目录摘要 ........................................................ ........................................................... .............................................. 1 1 绪论 ........................................................ ........................................................... .......................................... 1 1.1 设计背景与意 义 ........................................................ ........................................................... ............ 1 1.2 系统结构 ........................................................ ........................................................... ........................ 1 2 问题描述 ........................................................ ........................................................... .................................. 2 3 分

实验一 图像的二维离散傅立叶变换

实验一图像的二维离散傅立叶变换 一、实验目的 掌握图像的二维离散傅立叶变换以及性质 二、实验要求 1) 建立输入图像,在6464的黑色 图像矩阵的中心建立1616的 白色矩形图像点阵,形成图像文件。对输入图像进行二维傅立叶变换, 将原始图像及变换图像(三维、中心化)都显示于屏幕上。 2) 调整输入图像中白色矩形的位置,再进行变换,将原始图像及变换图像 (三维、中心化)都显示于屏幕上,比较变换结果。

3) 调整输入图像中白色矩形的尺寸 (4040, 44),再进行变换,将原始图 像及变换图像(三维、中心化)都显示于屏幕上,比较变换结果。 三、 实验仪器设备及软件 HP D538、MATLAB 四、 实验原理 在二维情况下,定义 f(x,y)的傅立叶变换F(u,v) : 2()2()(,)(,)(,)(,)j ux vy j ux vy F u v f x y e dxdy f x y F u v e dudv ππ∞∞ -+-∞-∞ ∞ ∞ +-∞-∞ ==? ???

它表明了空间频率成分与二维图像信号之间的相互关系 对于我们要处理的实际二维图像,其傅氏变换一般是在频率域上有界的,亦即有 用成分总是落在一定的频率域范围之内 上述的频率域性质的依据在于: 一是图像中景物的复杂性具有一定的限度,其中大部分内容是变化不大的区域 完全像“雪花”点似的图像没有任何实际意义。 二是人眼对空间复杂性(频率)的分辨率以及显示器的分辨能力都是具有一定 限度。 若实变量函数f(x)是绝对可积的,即: 且F(u)是可积的,则傅立叶变换对一定存在。 (){}()()[](){}()()[]du ux j u F x f u F dx ux j x f u F ππ2exp 2exp ??∞∞ -∞ ∞ -= = - ==1 -F x f F 如果f(x)考虑为实函数,它的傅立叶变换通常是复数形式,即: ()()()u jI u R u F +=也可表为: ()()() u j e u F u F φ= 若二变量函数f(x,y) 是绝对可积的,即: 且F(u,v)是可积的,则傅立叶变换对一定存在。 (){}()()()(){}()()()-1F f x,y ,,exp 2F ,,,exp 2F u v f x y j ux vy F u v f x y F u v j ux vy dudv ππ∞ ∞-∞-∞ ∞ ∞ -∞-∞ ==-+???? ==+?????? ?? 二维函数的傅立叶谱,振幅谱 相位谱 和能量谱分别为: ()()()[ ]()()()()()() v u I v u R v u E v u R v u I arctg v u v u I v u R v u F ,,,,,,,,,2 22 /12 2+=? ? ? ???=+=φ 五、 实验步骤及程序 %clear %原始图象 f=zeros(64,64);%输入64*64的黑色图像矩阵 f(25:40,25:40)=1;%建立16*16的白色矩行图像点阵 figure(1);

计算机图形学实验:二维图形变换

实验三二维图形变换 、实验任务 1. 通过二维几何变换的数学模型,编写缩放、旋转、对称变换; 2. 实现图形变换的交互式操作:缩放、旋转、对称变换等; 、实验内容 1. 放大缩小变换 放大缩小变换公式为:x'=X..S<, y'y.s;其中分别为X,y方向的放缩比 例系数。 变换矩阵表达式为: 可通过下面不同的比例系数来显示程序运行结果。 (1)S<=S=1.5;等比例放大 (2)S X=S y=0.5;等比例缩小 2. 对称变换 包括以x轴对称、y轴对称和原点0对称三种。由于屏幕坐标只有第一象限,我们可以将原点 平移到(500,240)处。在第一象限画出一个三角形,然后分别求出三个对称图形。 3. 旋转变换 将图形上的点(x, y)旋转0角度,得到新的坐标(x:y'为:x'xcos B -ysin 0 , y'=xsin0 +ycos 0 ; 变换矩阵表示为: cos 0sin 00 1 [x' y' 1]= :[xsin01pos 00 4. 0 0 1 三、设计思路 1. 通过二维几何变换的数学模型,编写缩放、旋转、对称变换; 2. 以(500,240 )为原点建立图形变换的参考坐标系; 3. 通过键盘按键控制图形的缩放、旋转、对称变换; 4. 变换图形设定为以Pt[0](540, 220)、Pt[1](670, 130)、Pt[2](560 , 120)为顶点的 三角形。 步骤:

1.建立Trans工程文件; 2.利用Resource View设计菜单,如图所示; 堀译膺试\巨妝件1 \匡披文 件| 4. 添加自定义的成员变量: CPoint Pt[3]; II三角形定点数组float dAngle; II每一次旋转的角度在视图类CPP文件的构造函数中初始化成员变量 Pt[0].x = 540; Pt[O].y = 220; Pt[1].x = 670; Pt[1].y = 130; Pt[2].x = 560; Pt[2].y = 120; dAn gle = 0; 5. 在视图类的OnDraw()函数中加入下列代码,实现视图绘图。 void CTransView::OnDraw(CDC* pDC) {

二维图形几何变换.doc

《计算机图形学》 实验报告 题目:二维图形几何变换 院、系(院):计算机科学与技术学院 专业及班级:_______________________ 姓名:_______________________ 学号:_______________________ 日期:_______________________ 1. 实验目的 1 )掌握3*3矩阵乘法运算的编程实现; 2)掌握平移,比例,旋转三种基本二维几何变换矩阵生成;3)掌握相对于任意参考点的二维复合变换矩阵生成。

2. 实验要求 1 )设计实现二维图形变换类,具有平移,比例,旋转二维几何变换功能,以及相对于任意参考点的二维复合变换功能; 2 )将2.2节直线类所绘制的菱形线框,绕最上端A点匀速旋转,并要求相对于A点来回缩放; 3)使用双缓冲机制进行图形绘制,避免运动闪烁,所有图形先绘制到用户自定义的DC ,绘制完成后再统一拷贝到屏幕DC。 3 .详细设计 3.1核心算法及类型设计 平移变换矩阵: -i o o- Tt= 0 1 0 tx ty 1 旋转变换矩阵: cos a sin a 0 Tr = -sin a cos a 0 0 0 1 比例变换矩阵: 5X 0 0 Ts = 0 sy 0 0 0 1

相对于任意参考点的旋转变换矩阵: _ 1 0 O'cos a sin a 0-1 0 0 T"=0 1 0?-sin a cos a 0?0 1 0 -tx ty 10 0 1 —— tx ty 1相对于任意参考点的比例变换矩阵: '10O -sx0o-10o 邛=010?0sy0?010 -tx F1001tx ty i 3.2程序设计实现及流程

相关主题