1、围绕原点的旋转
在直角坐标中,有p(x, y),直线op长度为r,直线op和x轴正向夹角为a。直线op围绕原点做逆时针方向b度的旋转,到达p’ (s,t),如下图。

s = r cos(a + b) = r cos(a)cos(b) – r sin(a)sin(b)   (1.1)
t = r sin(a + b) = r sin(a)cos(b) + r cos(a)sin(b)   (1.2)其中 x = r cos(a) , y = r sin(a)
代入(1.1), (1.2) ,s = x cos(b) – y sin(b)    (1.3)
t = x sin(b) + y cos(b)    (1.4)

用行列式表达如下:

代码如下

#include <MATH.H>void vRotationTransform(double dX, double dY, double dAngle, double &dbNewX, double &dbNewY)
{dbNewX = dX * cos(dAngle) - dY * sin(dAngle);dbNewY = dX * sin(dAngle) + dY * cos(dAngle);
}

2、坐标系的旋转
在原坐标系xoy中,  绕原点沿逆时针方向旋转θ度,变成座标系 sot。
设有某点p,在原坐标系中的坐标为 (x, y), 旋转后的新坐标为(s, t)。

oa = y sin(θ)   (2.1)
as = x cos(θ)   (2.2)综合(2.1),(2.2) 2式s =  os = oa + as = x cos(θ) + y sin(θ)
t =  ot = ay – by = y cos(θ) – x sin(θ)

用行列式表达如下:

看不懂的话,换个图。 而您一旦用以下这图解方法,随时眼见显然,再也不会搞错。

【C/C++】坐标旋转算法相关推荐

  1. java坐标旋转算法,C程序,从旋转度获得笛卡尔坐标

    我在工作应用程序上工作的时间太长了......而且很久以前就毕业了:)最近我一直在编写一个使用C的小型机器人模拟(虽然这个问题比C更算数学/算法)我有两个单位(坦克机器人)从比赛场地的X和Y坐标开始 ...

  2. 快速图像旋转算法的c++实现

    0 引言 在数字图像处理技术中,图像旋转算法是最基本的操作之一.本文实现一种快速的图像旋转算法,并和原始方法以及opencv提供的旋转方案进行速度上的比较. 1 基本原理 图像旋转有两种计算坐标的思路 ...

  3. 一种简单的图形旋转算法

    图形旋转好玩又有实用性, 这里介绍一种简单的图形旋转算法. 具体步骤如下: 1. 首先将原图和旋转图的坐标原点都变换到图形的中心位置处. 2. 历遍旋转图形中的每一个pixel, 将pixel的坐标( ...

  4. 学习OpenCV3——图像旋转算法实现

    图像旋转是非常常见的图像变换,通常应用于图像矫正,在OpenCV可以使用密集仿射变换函数cv::warpAffine()实现图像旋转.为了理解图像旋转的原理,本文实现了一个图像旋转算法. 图像旋转是指 ...

  5. 基于DSP的图像旋转算法数据调度策略

    基于DSP的图像旋转算法数据调度策略 [日期:2008-8-14] 来源:电子技术应用  作者:李筱琳,冯 燕,何亦征 [字体:大 中 小] <script src="http://w ...

  6. 【Android RTMP】NV21 图像旋转处理 ( 图像旋转算法 | 后置摄像头顺时针旋转 90 度 | 前置摄像头顺时针旋转 90 度 )

    文章目录 安卓直播推流专栏博客总结 一. 后置摄像头顺时针旋转 90 度 二. 前置摄像头顺时针旋转 90 度 三. NV21 格式图像旋转代码 安卓直播推流专栏博客总结 Android RTMP 直 ...

  7. 从几何与代数的角度推算坐标旋转变换矩阵(以2维为例)

    坐标旋转变换矩阵,大家都不陌生.我也常常使用,但是经常不确定每个元素的位置是否正确.以下从几何和代数的角度再推一边,方便自己以后来看. 以下是本文要用到的图,图中所示了两个坐标系OXY, oxy,及1 ...

  8. JavaScript实现squareMatrixRotation方阵旋转算法(附完整源码)

    JavaScript实现squareMatrixRotation方阵旋转算法(附完整源码) squareMatrixRotation.js完整源代码 squareMatrixRotation.test ...

  9. java collections_扫盲java.util.Collections工具包,学习排序、二分、洗牌、旋转算法

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 算法是数据结构的灵魂! 好的算法搭配上合适的数据结构,可以让代码功能大大的提升效率. ...

最新文章

  1. STM32中GPIO的8种工作模式
  2. python画曲线图例-Python画各种图
  3. Spring Boot集成Hazelcast实现集群与分布式内存缓存
  4. R3Injector实例里的records map的填充逻辑
  5. apache 的http代理出错 502 Proxy Error
  6. CUDA全局变量(__device__)的初始化与使用:cudaMemoryToSymbol、cudaMemoryFromSymbol、cudaGetSymbolAddress
  7. 一次tomcat数据乱码事件
  8. android点击图片跳转页面底部,【报Bug】安卓底部选项卡webview模式下 点击跳转到某个页面后,会出现底部重叠的问题...
  9. 百度阿里腾讯杀入语音识别,这家公司靠什么对抗巨头
  10. openwrtx 安装无线_面向工业物联网的远距离无线输电技术
  11. Learning Data Structure_2_线性表、栈和队列
  12. Day02 目录和文件的管理(ADMIN02)
  13. spring - 源码下载与构建
  14. Excel数据去重(删除重复项)
  15. python识别图片轮廓_教你用Python+opencv来识别物体的轮廓并标识显示
  16. 经典的《Rework》
  17. 使用QVE视频转换器制作gif动图
  18. 打工人息息相关的个税计算
  19. 解决jmeter控制台报javax.swing.text.BadLocationException: Position not represented by view的方法
  20. 服务器拒绝连接怎么修复服务器,服务器拒绝了连接怎么修复

热门文章

  1. http 协议 浏览器F12 拦击数据技巧
  2. python 变量不可更改对象和可修改对象
  3. Lambda方式创建多线程
  4. 力士乐INDRAMAT伺服驱动器维修DKC01.1-040-7-FW注意事项
  5. (Hadoop3)HDFS文件系统
  6. mac下安装gedit
  7. 桌面计算机盖帘,一种可调节高度的计算机显示器支架的制作方法
  8. 培乐园《搜索相关性1》—在线播放—优酷网,视频高清在线观看
  9. 除了谷歌,10个细分搜索引擎扩大你的流量池
  10. unet脑肿瘤分割_[论文代码]UNET++pytorch实现+环境安装+代码解释+brats2018脑肿瘤二维分割,UNetpytorch,Brats2018,2D...