1. matlab中的三维坐标系

matlab中的三维坐标系是使用的右手坐标系;

输入以下代码:

>> plot3(0,0,0)

>> xlabel('axis X')

>> ylabel('axis Y')

>> zlabel('axis Z')

可以看出是个很明显的右手坐标系。

2. matlab中的欧拉角和四元数旋转

euler angles ----> quaternion ----> dcm ---->rotation

MATLAB中欧拉角旋转基本遵循以上步骤,欧拉角、四元数、旋转矩阵之间是可以相互转换的,具体可以参见help文档中的Aerospace Toolbox ----> Functions ----> Axes ----> Axes Transformations中查看。

假设我在三维坐标系中有一向量r,绕Z轴旋转90度,结果为:

  1. close all;
  2.  
  3. clear;
  4.  
  5. clc;
  6.  
  7. r = [ ];
  8.  
  9. % 默认的旋转顺序是ZYX,所以[ ]表示绕Z轴旋转90
  10.  
  11. angle = [ ] * pi / ;
  12.  
  13. quaternion = angle2quat(angle(),angle(),angle());
  14.  
  15. n = quatrotate(quaternion,r)

结果:

n =

1.0000    0.0000    1.0000

原始向量在YZ平面上[0 1 1],旋转后的平面在XZ的平面上[1 0 1],可以看出从Z轴的正方向来看,顺时针旋转;

再次验证:

  1. close all;
  2.  
  3. clear;
  4.  
  5. clc;
  6.  
  7. r = [ ];
  8.  
  9. % 默认的旋转顺序是ZYX,所以[ -]表示绕X轴旋转90
  10.  
  11. angle = [ -] * pi / ;
  12.  
  13. quaternion = angle2quat(angle(),angle(),angle());
  14.  
  15. n = quatrotate(quaternion,r)
  16.  
  17. 结果:
  18.  
  19. n =
  20.  
  21. -1.0000 1.0000

结论:MATLAB中的默认坐标系是右手坐标系,且进行欧拉角旋转时,顺着轴的正方向来看,顺时针方向为正,逆时针方向为负。

另外,MATLAB自带rotate函数,解释如下:

  1. rotate
  2.  
  3. Rotate object in specified direction
  4.  
  5. Syntax
  6.  
  7. rotate(h,direction,alpha)
  8.  
  9. rotate(...,origin)
  10.  
  11. Description
  12.  
  13. The rotate function rotates a graphics object in three-dimensional space, according to the right-hand rule.
  14.  
  15. rotate(h,direction,alpha) rotates the graphics object h by alpha degrees. direction is a two- or three-element vector that describes the axis of rotation in conjunction with the origin.
  16.  
  17. rotate(...,origin) specifies the origin of the axis of rotation as a three-element vector. The default origin is the center of the plot box.

此旋转函数可选择三维空间中的图像,遵循右手坐标系,顺着轴的正方向来看,且逆时针方向为正,顺时针方向为负。

matlab中的三维坐标系与旋转的更多相关文章

  1. matlab中画三维图形

    这里主要讲述两个方法用matlab画三维图形: 1.mesh函数 先看一个简单的例子: x = ::; y = ::; [X, Y] = meshgrid(x, y); Z = zeros(,); Z ...

  2. 如何在 Matlab 中绘制带箭头的坐标系

    如何在 Matlab 中绘制带箭头的坐标系 如何在 Matlab 中绘制带箭头的坐标系 实现原理 演示效果 完整代码 实现原理 使用 matlab 的绘制函数时,默认设置为一个方框形的坐标系, 图1 ...

  3. MATLAB中plot()画图的颜色线型和希腊字母参数设置

    y         黄色           ·             点线      m         粉红           ○             圈线      c          ...

  4. Matlab绘图(一二三维)

    Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数.此外,M ...

  5. MATLAB中绘制质点轨迹动图并保存成GIF

    工作需要在MATLAB中绘制质点轨迹并保存成GIF以便展示. 绘制质点轨迹动图可用comet和comet3命令,使用例子如下: t = 0:.01:2*pi;x = cos(2*t).*(cos(t) ...

  6. matlab中patch函数的用法

    http://blog.sina.com.cn/s/blog_707b64550100z1nz.html matlab中patch函数的用法——emily (2011-11-18 17:20:33) ...

  7. matlab中的卷积——filter,conv之间的区别

    %Matlab提供了计算线性卷积和两个多项式相乘的函数conv,语法格式w=conv(u,v),其中u和v分别是有限长度序列向量,w是u和v的卷积结果序列向量. %如果向量u和v的长度分别为N和M,则 ...

  8. 图像卷积、相关以及在MATLAB中的操作

    图像卷积.相关以及在MATLAB中的操作 2016年7月11日 20:34:35, By ChrisZZ 区分卷积和相关 图像处理中常常需要用一个滤波器做空间滤波操作.空间滤波操作有时候也被叫做卷积滤 ...

  9. matlab中subplot函数的功能

    转载自http://wenku.baidu.com/link?url=UkbSbQd3cxpT7sFrDw7_BO8zJDCUvPKrmsrbITk-7n7fP8g0Vhvq3QTC0DrwwrXfa ...

随机推荐

  1. 串行CPU设计

    一.概述 串行CPU工作流程 串行CPU的时序流程如下图所示:取指.译码.执行.回写. 其中,取指.回写是与存储器打交道:而译码与执行则是CPU内部自个儿的操作. 我们究竟想要CPU干什么?     ...

  2. cocos creater 简单的跳跃动作。

    因为最近一段时间有打算做一个2D游戏的想法,就顺便学习了一下cocos,很惊异的它的脚本编写语言竟然支持js,正好以前对js有一定的了解,就临时拿起来了. 这是来自官方的一个实例,不过在参考过程中,发 ...

  3. Unity3D中的Coroutine详解

    Unity中的coroutine是通过yield expression;来实现的.官方脚本中到处会看到这样的代码. 疑问: yield是什么? Coroutine是什么? unity的coroutin ...

  4. 【Unity探究】物理碰撞实验

    这几天为了准备面试,所以决定对平时学习中的盲点扫盲一下,首先想到的就是物理碰撞.以前没有好好研究过,一直模糊不清,到底什么条件下才可以产生物理碰撞呢?只要其中一个有Rigidbody就可以了吗?所以进 ...

  5. Node.js事件发射器

    在Node很多对象发出事件,例如net.Server每个同级连接到它,一个fs.readStream发出打开文件事件时,每次都发出一个事件. 它发出事件的所有对象都是events.EventEmitt ...

  6. 【技术贴】解决使用maven jetty启动后无法加载修改过后的静态资源

    如何使用jetty自动热部署修改后的所有文件,比如js,jpg,class等,哇咔咔 太爽啦比tomcat舒服多了. jetty模式是不能修改js文件的,比如你现在调试前端js,发现在myeclips ...

  7. Android Wear开发 - 卡片通知 - 第一节 : 添加Android Wear通知特性

    一. 前言说明 Android Wear大部分显示形式是卡片的形式,而最简单地支持Android Wear方式就是用通知**Notification**.而实现最简单的,非高度自定义的通知,则只需要在 ...

  8. open和fopen的区别(转)

    转载自:http://www.cnblogs.com/joeblackzqq/archive/2011/04/11/2013010.html open和fopen的区别: 1.缓冲文件系统缓 冲文件系 ...

  9. Python根据上下限生成不重复随机数

    Python 2.7.5 代码: # coding=gbk import random import sys min_num = input('输入下限:') max_num = input('输入上 ...

  10. 解决android启动程序时,会出现一个短暂的白色空白界面的问题

    在启动的activity定义style为透明就可以了(android:theme="@android:style/Theme.Translucent")