二维世界中的旋转

转载 2006年06月12日 18:53:00

作者:胡颖卓


  首先,在解析几何中我们可以找到以下公式:

x'=x*cos(ang)-y*sin(ang)
y'=x*sin(ang)+y*cos(ang)

  这个公式是以原点(0,0)为中心,将点(x,y)旋转ang度,旋转后的坐标为(x',y')。不过这只是以原点为中心进行旋转的,如果我们想以任意点为中心旋转呢!公式变形如下:

x'=zx+(x-zx)*cos(ang)-(y-zy)*sin(ang)
y'=zy+(x-zx)*sin(ang)+(y-zy)*cos(ang)

  好,这也就是我们想要的结果了。以(zx,zy)为中心,将点(x,y)旋转ang度,旋转后的坐标为(x',y')

  由于在标准C/C++库中,sincos所要求的参数为弧度,而并非角度,所以我们需要一个转换。

弧度=角度*圆周率/180

  按以上,最后的标准C/C++程序如下:

float x,y;           //原始点坐标
float rx,ry;         //旋转中心点坐标
float nx,ny;         //旋转后的点坐标
float ang;           //旋转角度(0-360)
float as,ac;

……

as=sin(ang*M_PI/180.0);
ac=cos(ang*M_PI/180.0);

nx=rx+((x-rx)*ac-(y-ry)*as);
ny=ry+((x-rx)*as+(y-ry)*ac);


二维图形旋转公式的推导

关于二维图形旋转可能在很多计算机图形学相关的书籍上都会介绍,然而真正理解公式推导过程的却讲得不多。那么如何推导出二维图形绕某一点旋转的公式呢?我在这里就将其推导过程简要的说明一下。其实推导过程比较简单...
  • zhouxuguang236
  • zhouxuguang236
  • 2014年06月17日 21:31
  • 9671

二维向量旋转公式

1.基础的2-D绕原点旋转  在2-D的迪卡尔坐标系中,一个位置向量的旋转公式可以由三角函数的几何意义推出。比如上图所示是位置向量R逆时针旋转角度B前后的情况。在左图中,我们有关系:    ...
  • hjq376247328
  • hjq376247328
  • 2015年04月18日 15:16
  • 8423

学习3D《1、二维坐标系下的平移旋转缩放》

各位看官,俗话说:火车不是推滴,牛皮不是吹滴。没有扎实的基础知识,再高的摩天大楼也是会倒滴,我们还是一步两个脚印吧^_^ 话说当年笛卡尔坐标系创世之初,那场面也是惊天地,泣鬼神,以至于让我们这些小虾...
  • jiangdragon
  • jiangdragon
  • 2012年05月10日 11:23
  • 1913

二维图形学的变换-平移、旋转、缩放 OpenGL

这里实现的是多点画多边形,然后把这个多边形进行二维的变换。 首先,多点画多边形,为了方便起见,我直接调用了Opengl的库函数。其次,就是如何进行多边形的二维变换。在这里我有两种方法。第一种是直接根据...
  • a3631568
  • a3631568
  • 2016年12月14日 13:34
  • 3896

计算机图形学(四)_几何变换_1_基本的二维几何变换(二)_旋转

类似于平移,旋转是一种不变形地移动对象的刚体变换,对象上的所有点旋转相同的角度。线段的旋转可以通过将旋转方程5用于每个线段端点,并重新绘制新端点间的线段而得到。多边形的旋转则是将每个顶点旋转指定的旋转...
  • heyuchang666
  • heyuchang666
  • 2017年03月03日 16:46
  • 2300

二维图形旋转的实现

二维图形旋转的实现。
  • clever101
  • clever101
  • 2010年11月11日 23:59
  • 7179

Unity _坐标系_与旋转的关系

了解坐标系的特点是我们首要任务: 笛卡尔坐标系(Cartesian coordinates)(法语:les coordonnées cartésiennes)就是直角坐标系和斜坐标系的统称(特点是不...
  • qq_39710961
  • qq_39710961
  • 2017年10月07日 20:35
  • 160

二维矩阵的旋转问题(二维数组作为函数参数)

题目:给定一幅有N*N矩阵表示的图像,其中每个像素的大小为4字节,编写一个方法,将图像旋转90度。不占用额外的存储空间能否做到? 思路:假设旋转是按照顺时针方向,那么右旋90度就是左移到上,上移到右,...
  • moses1213
  • moses1213
  • 2016年07月16日 22:27
  • 1494

OpenCv: 二维坐标的旋转方程

可以写成一个矩阵的形式,也可以写成向量的形式:          b 为选转角度加pi/2          x1 = x cos(b) - ysin(b) ;  y1 = x sin(b) + y...
  • wishchin
  • wishchin
  • 2016年06月20日 19:18
  • 1195

二维图形的几何变换

1、基本几何变换及变换矩阵 基本几何变换都是相对于坐标原点和坐标轴进行的几何变换,有平移、比例、旋转、反射和错切等。 1.1 平移变换 是指将p点沿直线路径从一个坐标位置移到另一个坐标位置的重定...
  • wcyoot
  • wcyoot
  • 2014年06月22日 12:08
  • 14355
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:二维世界中的旋转
举报原因:
原因补充:

(最多只允许输入30个字)