二维图形变换
- 格式:ppt
- 大小:246.50 KB
- 文档页数:24


平原大学学报季刊第期年月总第期
二维图形变换的程序设计方法
莫亚林寇世瑶
摘要二维图形的自动变换处理是绘图软件系统设计中的一个非常复杂的间题本文应用二维
图形变换理论对于二维图形变换的形数关系级联顺序程序设计等进行了分析和探讨提供了一种解决问题的实用方法作者用这种方法设计出来的绘图软件包已为教学和科
研服务并收到良好的效果
前言
在计算机绘图中常常要设计一个比较完善的绘图软件系统以便为用户使用绘图输出设
备提供更好的服务其中如实现二维图形的平移比例旋转对称等变换便是绘图软件系统中
的重要组成部分
一问题的提出
问题一为说明间题简便起见现以一圆弧对称为例如图所
示已知弧欣可由下列参
数确定。。—圆心坐标和半径
—圆弧起始角和终止角与轴正向夹角
—控制圆弧的“走向”参数逆时针画弧顺时针画弧
份便是杭对轴的反射在这个对称变换中除圆弧半径“值未变之外其余
各参数均发生变化
问题二二维空间内的一个点或一个图形可以用矩阵的形式来表示对二维图形进行各种变换可
以通过坐标变换矩阵运算来改变组成图形各点的坐标由于矩阵的乘法运算不适用交换律用基本变换的级联来实现图形的复杂变换时级联的顺序不同所得的变换结果也不同这时给
设计通用性的图形变换程序带来了困难
综上所述设计二维图形变换的程序必顺解决好以下几个问题
图形各点的坐标变换角度的变换及其图线“走向”变化
级联顺序与通用性的矛盾
二程序设计的指导思想
对程序通用性的认识设计一个任意级联变换的通用性程序是很困难的在实际绘图中用户编制的绘图程序往往遇到的变换是独立的或者是做一两种基本变换的组合变换对于多级变换才能绘成的复杂
图形由于变换过程不直观数学分析复杂等原因很少采用“变换”方法编程因此二维图形变
换程序应以实用为主如果能自动实现平移变比旋转对称四种基本变换以及一两种组合变
换那么就基本达到“通用”的目的
程序功能
程序应能对二维图形变换中的数据进行自动处理而又不破坏图形的原始数据例如要
对平面图形进行旋转变换用户仅提供旋较角度这一个参数调用旋转子程序后程序将自动
实验报告
学院:计信学院 专业:计算机科学与技术(软件工程方向) 班级:07软件2班
姓名 学号 实验组
实验时间 2010.5.24 指导教师 成绩
实验项目名称 二维图形的几何变换
实验目的 掌握二维图形的基本几何变换:位置改变(平移、旋转)和变形(缩放、错切,反射、投影等)以及复合变换。
实验要求 实现二维图形的集合变换
实验原理 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.二维图形变换主要是基于齐次坐标方程,通过一些简单的矩阵运算来实现:
二维齐次坐标变换的矩阵形式是:
ihgfedcba
矩阵的每个元素都有特殊含义.基中edba可以对图形进行缩放,旋转,对称,错切等变换;fc是对图形进行平移变换;hg的对图形作投影变换;i则是对图形整体进行缩放变换. 例如:将一个图形在X方向中平移tx个单位,在Y方向平移ty个单位.其实现过程如下:
1),(111001001111yxtytxTtyytxxyxtytxyx
其中:x1,y1是变换后的坐标,x,y是变换前的坐标,通过上述变换,(x,y)被平移了P(tx,ty).
在二维平面上任何复杂的变换都可以通过上述基本变换的组合来实现.级合方式在计算机上主要体现在矩阵的乘法运算,即将各个简单变换的矩阵逆序相乘,就可以得到一个总的变换矩阵.利用这个总的变换矩阵就可以对图形进行复合变换.
贵州大学实验报告
学院:计算机科学与信息学院 专业:计算机科学与技术 班级: 101
姓名 学号 实验组 6
实验时间 2013.5.9 指导教师 吴云 成绩
实验项目名称 二维图形的几何变换
实验目的 掌握二维图形的基本几何变换:位置改变(平移、旋转)和变形(缩放、错切,反射、投影等)以及复合变换。
实验要求
1、 在VS2010环境下利用C#编程实现画二维图形的几何变换。
2、 给出代码。
3、 附上结果截图。
实验原理
标准齐次坐标(x,y,1) 二维变换的矩阵表示
平移变换
旋转变换
放缩变换
平移变换只改变图形的位置,不改变图形的大小。
旋转变换不改变图形的形状
放缩变换引起图形形状的变化。
复合变换结果与变换的顺序有关(矩阵乘法不可交换)
例:对一矩形先缩放S(2,0.5),再旋转R(p/6)。
对称变换
关于x轴的对称变换:
关于y轴的对称变换:
实验环境 VS2010(C#)
实验步骤 1. 掌握算法原理;
2. 依据算法,编写源程序并进行调试;
下面缩放变化的算法实现:
private void TriangleChange()//缩?小?
{
Pen pen = new Pen(Color.Gray, 2);
int x, y;
x = point.X + 50;
y = point.Y - 100;
Point[] points =
{
new Point(x,y),
new Point((x+point.X+10)/2,(y+point.Y-20)/2),
new Point((x+point.X+80)/2,(y+point.Y-50)/2)
宁夏师范学院数学与计算机科学学院
《计算机图形学》实验报告
实验序号:7 实验项目名称: 二维图形变换
学 号 姓 名 专业、班 2011级计本班
实验地点 指导教师 时 间 2014.11.20
一、实验目的
1、通过二维几何变换的数学模型,编写缩放、旋转、对称变换;
2、实现图形变换的交互式操作:缩放、旋转、对称变换等;
二、实验内容与步骤
1、放大缩小变换
放大缩小变换公式为:x’=x.Sx, y’=y.Sy; 其中Sx, Sy分别为x,y方向的放缩比例系数。
变换矩阵表达式为:
[x’ y’ 1]=[x y 1]
可通过下面不同的比例系数来显示程序运行结果。
(1)Sx=Sy= 1.5;等比例放大
(2)Sx=Sy= 0.5;等比例缩小
2、对称变换
包括以x轴对称、y轴对称和原点O对称三种。由于屏幕坐标只有第一象限,我们可以将
原点平移到(500,240)处。在第一象限画出一个三角形,然后分别求出三个对称图形。
3、旋转变换
将图形上的点(x,y)旋转θ角度,得到新的坐标(x’,y’)为:
x’=xcosθ-ysinθ, y’=xsinθ+ycosθ;
变换矩阵表示为:
[x’ y’ 1]=[x y 1]
三、实验步骤
1、通过二维几何变换的数学模型,编写缩放、旋转、对称变换;
2、以(500,240)为原点建立图形变换的参考坐标系;
3、通过键盘按键控制图形的缩放、旋转、对称变换;
4、变换图形设定为以Pt[0](540,220)、Pt[1](670,130)、Pt[2](560,120)为顶点的三角形。
步骤:
1. 建立Trans工程文件;