三维空间的绕轴旋转变换
最近在看文献的时候看到作者有用到三维绕轴变换。我看了好久都没摸清他的矩阵是怎么得到的。待我提笔一画,妈呀,果然这脑子是废了,这么easy的问题都他么的解不出来。既然脑子废了那手还是勤劳点把。叹气。唉,,猪生艰难。。。我只想过吃完就睡睡完就吃的生活啊!为什么要这么torture我。咳,言归正传。
首先出一个清晰的问题让你知道这个博客是在讲什么?
如下,这是一个三维坐标(没错就是右手坐标系),然后在xoy平面上我们有一条直线OA,A的坐标是(x0,y0,z0),我们让OA绕着y轴顺时针旋转β角,求转完以后的A点新的坐标嘿嘿嘿?
其实这些都是有公式的。这里给出一个博客地址,作者讲的非常好。所以我就不做重复功了。:)
作者:zdd
出处:http://www.cnblogs.com/graphics/
不要谢我,我是无情的知识搬运工(这里只搬运结论):
注意:关于旋转的正方向,OpenGL与多数图形学书籍规定旋转正方向为逆时针方向(沿着坐标轴负方向向原点看),比如Computer Graphics C Version,p409。
==============左手坐标系下(Unity,DirectX)===============
绕X轴旋转:
绕Y轴旋转:
绕Z轴旋转:
===============右手坐标系下(Opengl)============
注意:规定在右手坐标系中,物体旋转的正方向是右手螺旋方向,即从该轴正半轴向原点看是逆时针方向。
绕X轴旋转:
绕Y轴旋转:
绕Z轴旋转:
三维空间的绕轴旋转变换相关推荐
- 空间点绕任意轴旋转变换公式
空间点绕任意轴旋转变换公式 P点绕A向量旋转θ角后得到P': P' = Pcosθ + (A × P)sinθ + A(A·P)(1 - cosθ) 注意:视口为向量指向的位置,就是向量指向你,θ为逆 ...
- 关于使用旋转四元数绕轴旋转θ角度时,使用参数是θ/2的理解
3D点A=(Xa,Ya,Za)绕轴N=(Nx,Ny,Nz)旋转θ角度.将点A扩展到四元数空间,则A=(0,Xa,Ya,Za),此时A点纯四元数(即第一位W分量等于0),处于四维空间中的一个超三维平面上 ...
- 右手坐标系,空间点绕轴旋转公式程序(Python和C++程序)
右手坐标系,空间点绕轴旋转公式&程序[Python和C++程序] 1 右手坐标系 1.1 旋转90度是什么样的 2 XYZ空间内某点绕X.Y.Z轴旋转一次 2.1 XYZ空间内某点绕Z轴旋转γ ...
- 游戏程序设计中有趣的绕轴旋转
前言 在游戏设计中,绕轴旋转综合了位移与旋转两种空间变化,即在通过位移变换得到宏观旋转的效果的同时,物体自身的旋转来保证正确的轴向对齐.在对这一过程执行推导演绎时会设计到一些基本的高中几何数学知识 如 ...
- Unity中C#代码学习用wasd和上下左右键控制物体前后左右上下移动和绕轴旋转
Unity中C#代码学习用wasd和上下左右键控制物体前后左右上下移动和绕轴旋转 using System.Collections; using System.Collections.Generic; ...
- 计算机图形学练习(二)——正方体绕轴旋转
正方体绕轴旋转 只要在旋转立方体的代码上做稍微的改动即可 旋转立方体 本文将立方体立起来旋转,关键在于初始偏转角度的计算 transform = glm::rotate(transform, glm: ...
- 3D坐标绕轴旋转公式推导
绕轴旋转实际上等价于平面点绕远点旋转,所以这里只用分析一下平面情况就可以. 问题转换为:平面上任意点(x,y)绕原点旋转R度后,新点坐标为多少? 一. 通常情况,我们容易想到一下的推导方式(我一开始想 ...
- MATLAB 绕轴旋转图像函数 rotate 详解
介绍 以指定原点和方向旋转图像对象. 语法 rotate(h,direction,alpha) rotate 函数在三维空间中旋转图形对象. rotate(h,direction,alpha) 将图形 ...
- matlab 轴旋转图像,求助,二维图像如何绕轴旋转成为三维图像
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 程序如下 gama = 2*pi/9; h = 300; Rr = 400; Dr = 850; R1 = h/(2*sin(gama/2)); thet ...
最新文章
- SAP RETAIL WB02 为门店激活物料分类账报错 - ML currencies are not integrated in FI for valuation area m123 NMI1 –
- Python代码:数字图像处理(DIP)7.1.1图像金字塔example7.1
- ios网络学习------8 xml格式数据的请求处理 用代码块封装
- 程序员的修养--读书笔记
- @PropertySource与@ConfigurationProperties多种方式读取配置文件详解,附带@PropertySources使用说明
- jQuery中的.bind()、.live()和.delegate()之间区别分析,学习jquery
- 在 TMG 更新中心中使用 WSUS进行每日的定义更新
- [swift] LeetCode 21. Merge Two Sorted Lists
- JavaScript遍历DOM
- 计算机网络苏州大学题库,苏州大学计算机网络样卷B[计科大类].doc
- Linux的主动实行措施cron和crontab(1)
- JasperReport生成pdf文件 Java开发pdf文件 pdf文件生成及下载
- android通过代码设置铃声_我想在国产安卓系统,用上这些超好用的原生 Android 功能...
- 设置带用户名和密码的telnet登入方式(原创)
- PHP智云全能API接口源码V1.3
- Zhong__Centos安装Redis
- 【arduino红外对管】
- JavaWeb新闻项目(查询阅读主题维护)
- 开心网存在重大安全隐患
- php三种常用的加密解密算法
热门文章
- Jenkins一键发布「apkipa」 到Bugly
- 《Vim实用技巧(第2版)》学习笔记:技巧12-双剑合璧,天下无敌
- 数据安全防脱库解决方案信息泄密根源
- python停车场车位短租系统django+vue项目源码介绍
- phpstudy_pro 数据库端口查看或更改
- J Fans Space 王者荣耀粉丝杯半决赛
- c8051f优先权交叉开关原理
- Python基础知识大全(适用于全面复习Python语法知识)
- 开展性能测试必须知道的21件事:认清性能问题
- android4.4 r漫游图标,Android N 修改网络类型,数据上下行和漫游图标相关布局和逻辑...