几何变换平移、旋转、缩放矩阵

**矩阵乘法不满足交换律,因此先后顺序一定要讲究。**

矩阵乘法规则:A矩阵第一行与B矩阵第一列逐元素相乘再相加,放在C矩阵【11】,A矩阵第一行与B矩阵第二列逐元素相乘再相加,放在C矩阵【12】,A矩阵第二行与B矩阵第一列逐元素相乘再相加,放在C矩阵【21】,A矩阵第二行与B矩阵第二列逐元素相乘再相加,放在C矩阵【22】。

平移矩阵:设某点向X方向移动dx,Y方向移动dy,某点的平移前的坐标为(x,y),则平移后的坐标计算为:

X = x + dx ; Y = y + dy;

矩阵表示为:

旋转矩阵:设某点(x,y)与原点的X轴成B度角,以原点为圆心,逆时针绕过A度,半径连线为R,变换前坐标为(x,y),则变换后坐标为:

X = RCos(B+A) ; Y = RSin(B+A);

因为:x = RCosB ; y = RSinB;

故X = RCosB*CosA - RSinB*SinA = x*CosA - y*SinA

Y = RCosB*SinA + RSinB*CosA = y*CosA + x*SinA

矩阵表示为:

缩放矩阵:设某点在X轴方向上放大Sx,在Y轴方向上放大Sy,该点的坐标为(x,y),则放大后的坐标为:

X = x*Sx,  Y = y*Sy;

矩阵表示为:

时间: 2024-10-05 23:37:41

几何变换平移、旋转、缩放矩阵的相关文章

osg中使用MatrixTransform来实现模型的平移/旋转/缩放

osg中使用MatrixTransform来实现模型的平移/旋转/缩放 转自:http://www.cnblogs.com/kekec/archive/2011/08/15/2139893.html#undefined MatrixTransform是从Transform - Group继承而来,因此可以在它的下面挂接Node对象. 通过设置其矩阵,来实现其下子节点的模型变换. -- 用局部坐标系来理解(局部坐标系又称惯性坐标系,其与模型的相对位置在变换的过程中始终不变) 如下代码: // 创建

osg矩阵变换节点-----平移旋转缩放

osg矩阵变换节点-----平移旋转缩放 转自:http://www.cnblogs.com/ylwn817/articles/1973396.html 平移旋转缩放这个三个是osg矩阵操作中,最常见的操作,下面给出示例以及说明 首先先了解下osg空间方向: osg方向如左图所示,x轴表示屏幕水平方向,y轴表示和屏幕垂直方向即屏幕里面方向,z轴表示屏幕垂直方向,每个箭头指向表示正方向 下面来学习矩阵变换操作 首先平移: #include<osgDB/ReadFile> #include<

iOS 开发----CGAffineTransform平移,旋转,缩放

在做平移,旋转,缩放的时候一定要记住三个步骤: 获取值(获取当前控件的 transform 属性值) 修改值(修改需要设置的 transform 属性值) 赋值   (将修改的 transform 属性的值赋给原来的值) /**   *  平移   *   *  @param transform 获取当前的形变 transform   *  @param tx        沿着 x 水平方向的平移   *  @param ty        沿着 y 垂直方向的平移   *   *  @ret

【安卓】自定义基于onDraw的任意动画(不仅仅是平移/旋转/缩放/alpha)、!

思路: 1.基于时间的显示映射.如:给定度数,显示圆弧,加上时序,即可有圆弧动画的效果 2.给定时序.用于驱动动画的一帧帧绘制 方案一.基于ObjectAnimator.动画运作时会调用degree对应set函数(基于放射调用),即setDegree. ObjectAnimator ani=ObjectAnimator.ofInt(myView, "degree", 0,300); ani.start(); 注:1>混编后,默认会将setDegree混掉,导致找不到函数,故混编后

矩阵平移旋转缩放公式

(4)平移矩阵: 注:以上矩阵采用的行矩阵,向量采用的是行向量.

Android bitmap的拷贝以及平移旋转缩放等效果

package com.example.bitmap; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Matrix; import android.graphics.Paint; import android.os.Bundle; i

【安卓】自己定义基于onDraw的随意动画(不不过平移/旋转/缩放/alpha)、!

思路: 1.基于时间的显示映射.如:给定度数,显示圆弧,加上时序,就可以有圆弧动画的效果 2.给定时序. 用于驱动动画的一帧帧绘制 方案一.基于ObjectAnimator.动画运作时会调用degree相应set函数(基于放射调用),即setDegree. ObjectAnimator ani=ObjectAnimator.ofInt(myView, "degree", 0,300); ani.start(); 注:1>混编后,默认会将setDegree混掉,导致找不到函数,故混

【WebGL初学系列之五】旋转,平移,缩放

nbcoder.com地址:http://nbcoders.com/webgl-chu-xue-xi-lie-zhi-wu-ai.html 最近把WebGL做的相关Demo已经放在 http://www.nbcoders.com 上了,这样就可以直观的进行看效果. 地址:    http://lab.nbcoders.com/ixshells/ 本文旋转平移缩放Demo的地址: http://lab.nbcoders.com/ixshells/Html/ScaleRotateTranslate.

OpenCV2:图像的几何变换,平移、镜像、缩放、旋转(2)

在OpenCV2:图像的几何变换,平移.镜像.缩放.旋转(1)主要介绍了图像变换中的向前映射.向后映射.处理变换过程中浮点坐标像素值的插值算法,并且基于OpenCV2实现了两个简单的几何变换:平移和镜像变换.本文主要稍微复杂点的两个几何变换:缩放和旋转. 1.图像缩放 图像的缩放主要用于改变图像的大小,缩放后图像的图像的宽度和高度会发生变化.水平缩放系数,控制图像宽度的缩放,其值为1,则图像的宽度不变:垂直缩放系数控制图像高度的缩放,其值为1,则图像的高度不变.如果水平缩放系数和垂直缩放系数不相