点绕点旋转-点绕坐标轴旋转
最近看irrlicht源码,在include/core中的vector2d.h中有一个函数rotateBy()。其计算原理如下:
// vector2d的一个成员函数void rotateBy(f64 degrees, const vector2d<T>& center){degrees *=gradPI2;//转换为弧度制T cs = (T)cos(degrees);T sn = (T)sin(degrees);// 先将旋转中心点平移到原点,同时也要平移待旋转点X -= center.X;Y -= center.Y;// 设置当前点坐标为旋转后的点set(X*cs - Y*sn, X*sn + Y*cs);// 将旋转后的点平移回去X += center.X;Y += center.Y;}
由上图可以看出,其实P点绕原点旋转,如果转换到三维空间,其实就是三维点P绕坐标轴z旋转。
点绕点旋转-点绕坐标轴旋转相关推荐
- 绕固定坐标轴旋转与绕自身坐标轴旋转一致性证明
最近在看人头姿态和视线方向检测的东西,需要考虑坐标系与坐标系之间的旋转.用欧拉角表示坐标系的旋转时存在两种旋转方法,另外旋转的顺序也会对旋转结果有影响,查了一些资料总结一下结果. 描述坐标系B ...
- 旋转——绕原点二维旋转,绕任意点的二维旋转,三维基本旋转,绕任意轴的三维旋转
1 简介 计算机图形学中的应用非常广泛的变换是一种称为仿射变换的特殊变换,在仿射变换中的基本变换包括平移.旋转.缩放.剪切这几种.本文以及接下来的几篇文章重点介绍一下关于旋转的变换,包括二维旋转变换. ...
- 关于使用旋转四元数绕轴旋转θ角度时,使用参数是θ/2的理解
3D点A=(Xa,Ya,Za)绕轴N=(Nx,Ny,Nz)旋转θ角度.将点A扩展到四元数空间,则A=(0,Xa,Ya,Za),此时A点纯四元数(即第一位W分量等于0),处于四维空间中的一个超三维平面上 ...
- three.js orbitcontrol更改绕x轴与z轴旋转
我们在threejs模型中可以引入orbitcontrol来控制模型交互动作,但orbitcontrol默认是以y轴为正向上轴,即旋转的时候绕x轴和y轴旋转 但我现在想让绕x轴和z轴旋转,方法是 ca ...
- 【自动驾驶】29.坐标变换与坐标轴旋转
从一个坐标系的点变换到另一个坐标系的点,旋转矩阵的角度我们不能直接知道,但是可以通过两个坐标系之间的旋转来间接得到. 如: 世界坐标系有一个点P,我们要描述它,就得给他一个坐标系原点,如果他放在车身坐 ...
- OpenGL(十二)——Qt OpenGL绕着坐标轴旋转多边形
OpenGL(十二)--Qt OpenGL绕着坐标轴旋转多边形 一.旋转多边形 前两篇介绍了如何绘制多边形,并且给多边形进行上色.本篇介绍如何旋转多边形. 多边形的旋转,在类中增加两个变量来控制这两个 ...
- 帅某---考研---空间直线绕坐标轴旋转、二次曲面方程
一.空间直线绕坐标轴旋转 注:1.本说明以Z轴为例子,其他轴类同: 2.直线绕直线旋转对应的为二次曲面方程,属于超纲内容.考察内容为:给定二次曲面方程,只需要知道其曲面类型. 二.二次曲面方程 1.介 ...
- matlab的空间坐标轴,空间三维坐标轴旋转
根据在网上找的公式编的程序,不知道对不对 %设在OXY坐标系中,原点不动,坐标轴旋转而得到一新坐标系OX'Y'Z': %OX'轴与OX,OY,OZ轴的正向夹角分别成:α1, β1, γ1角: %O ...
- Unity旋转基础——二维旋转与三维旋转
Steven M. LaValle 的 Virtual Reality 这本书中讲了关于几何模型变换以及显示的知识,跟网上的资料比这本书里讲的比较简洁,于是想做一个总结.本博客参考了<Virtu ...
- 计算机图形学 旋转平移原理,计算机图形旋转操作详细步骤
这是更改对象角度的过程.旋转可以是顺时针或逆时针.对于旋转, 我们必须指定旋转角度和旋转点.旋转点也称为枢轴点.打印关于旋转哪个对象的信息. 旋转类型 逆时针方向 逆时针方向 枢轴点的正值(旋转角度) ...
最新文章
- python能绘制统计图吗-python, 基本统计图的绘制
- 云服务时代,你是否没穿内裤在到处逛啊!
- mysql中find_in_set结合GROUP_CONCAT使用
- c语言选择排序_冒泡、插入、选择排序(C语言)
- 深入探究Spark -- Cluster Manger部署(最常用为YARN实现Task Scheduler)
- CSS尺寸和字体单位-em、px还是%
- App流量测试--使用安卓自身提供的TCP收发长度统计功能
- Ubuntu18.04下安装OpenCV依赖包出现ibjasper-dev无法安装的问题
- 学习OpenStack之(6):Neutron 深入学习之 OVS + GRE 之 Compute node 篇
- C#之double内存
- 兄弟连Linux学习笔记
- 微信小程序 全套 视频 9ph7 教程 全部免费 百度网盘
- Compiere 开源CRM的比较选择
- HTML字体颜色对照表
- centos7如何安装视频播放器
- java毕业生设计车辆调度管理系统计算机源码+系统+mysql+调试部署+lw
- 内存容量大小单位转换
- 和Mengjiji一起攻克难关
- Centos-7.5Linux系统启动原理及故障排除
- 图片处理系列一Android照片墙应用实现(绝对不崩溃)