Python根据欧拉角求旋转矩阵的实例

利用numpy和scipy,我们可以很容易根据欧拉角求出旋转矩阵,这里的旋转轴我们你理解成四元数里面的旋转轴

import numpy as np

import scipy.linalg as linalg

import math

#参数分别是旋转轴和旋转弧度值

def rotate_mat(self, axis, radian):

rot_matrix = linalg.expm(np.cross(np.eye(3), axis / linalg.norm(axis) * radian))

axis_x, axis_y, axis_z = [1,0,0], [0,1,0], [0, 0, 1]#分别是x,y和z轴,也可以自定义旋转轴

yaw = 0.7854 #pi/4

rot_matrix = rotate_mat(axis_z, yaw)#绕Z轴旋转pi/4

求出旋转矩阵后我们可以结合原始坐标, 直接用np.dot求出旋转前后的坐标.

new_coor = np.dot(old_coor, rot_matrix)

以上这篇Python根据欧拉角求旋转矩阵的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2019-01-26

前言 本文主要给大家介绍了关于利用python打印出菱形.三角形以及矩形的相关内容,分享出来供大家参考学习,话不多说,来一起看看详细的介绍: 实例代码 #coding:utf-8 rows = int(raw_input('输入列数: ')) i = j = k = 1 #声明变量,i用于控制外层循环(图形行数),j用于控制空格的个数,k用于控制*的个数 #等腰直角三角形1 print "等腰直角三角形1" for i in range(0, rows): for k in range

本文实例为大家分享了python opencv实现旋转矩形框裁减的具体代码,供大家参考,具体内容如下 经常遇见旋转矩形框的裁减问题,那么思路是,将矩形框旋转正然后再裁减 # -*- coding:gb2312 -*- import cv2 from math import * import numpy as np import time def rotateImage(img,degree,pt1,pt2,pt3,pt4): height,width=img.shape[:2] heightNe

有时候需要对有角度的矩形框内图像从原图片中分割出来.这里的程序思想是,先将图片进行矩形角度的旋转,使有角度的矩形处于水平状态后,根据原来坐标分割图片. 参考:python opencv实现旋转矩形框裁减功能 修改原来的程序: 1.旋转函数的输入仅为矩形的四点坐标 2.角度由公式计算出来 3.矩形四点pt1,pt2,pt3,pt4由txt文件读入 4.在旋转程序中还处理了顺时针和逆时针及出现矩形框翻转的问题. 代码: # -*- coding:utf-8 -*- import cv2 from m

打印旋转矩阵应该是很经典的算法问题了. 题目描述如下: 给定一个m * n要素的矩阵.按照螺旋顺序,返回该矩阵的所有要素. 思路:1,先定义矩阵的左上和右下的坐标,然后通过两个坐标来打印这一圈矩阵: 2,将左上的坐标下右下移动,右下的坐标向左上移动,来缩小打印圈,进行下一圈矩阵的打印: 3,一直缩小打印直到结束. 代码: def print_circle(matrix,up_hang,up_lie,down_hang,down_lie): result=[] if up_lie==down_ha

Python的zip函数 示例1: x = [1, 2, 3] y = [4, 5, 6] z = [7, 8, 9] xyz = zip(x, y, z) print xyz 运行的结果是: [(1, 4, 7), (2, 5, 8), (3, 6, 9)] 从这个结果可以看出zip函数的基本运作方式. 示例2: x = [1, 2, 3] y = [4, 5, 6] z = [7, 8, 9] xyz = zip(x, y, z) u = zip(*xyz) print u 运行的结果是:

假设有Class A 和 Class B两个类,Class A中定义了a(),Class B中定义了b(). 现在我想在Class B中调用 Class A中的函数a().此处介绍三种调用方法: 方法一: 在Class B中所定义的fuction()中声明Class A的对象a,然后用对象a来调用Class A的函数a(). 最后在main中声明Class B的对象b,让b调用该类中的fuction(). #!/usr/bin/env python # -*- coding: utf-8 -*-

基于Python中求和函数sum的用法详解 今天在看这本书的时候,看到一段Python代码,当时是百思不得其解,总觉得是书中排版出错了,后来去了解了一下sum的用法,看了一些Python大神写的代码后才发现是自己浅薄了!特在此记录一下.书中代码段摘录如下: from math import sqrt def sim_distance(prefs, person1, person2): # 得到shared_items的列表 si = {} for item in prefs[p

最近开始学习Python编程,遇到scatter函数,感觉里面的参数不知道什么意思于是查资料,最后总结如下: 1.scatter函数原型 2.其中散点的形状参数marker如下: 3.其中颜色参数c如下: 4.基本的使用方法如下: #导入必要的模块 import numpy as np import matplotlib.pyplot as plt #产生测试数据 x = np.arange(1,10) y = x fig = plt.figure() ax1 = fig.add_subplot

match()函数的使用.以及从文本中提取数据的方法.在学习re模块的相关函数前应了解正则表达式的特殊字符 准备一个要爬取的文本文档: 直接从某个网页拷贝一份代码,粘贴在 一个txt文件里,以供学习. 方法很简单,比如打开百度视频的热门电影网页,右键点击查看源代码,然后复制,粘贴到一个txt文件里,保存到工作目录下. 有4000多行. re.match(pattern, string, flags=0) ①pattern,是正则表达式.string,被检验的字符串. ②flags是可选参数,此标

本文实例讲述了Python中zip()函数的定义及用法,相信对于Python初学者有一定的借鉴价值.详情如下: 一.定义: zip([iterable, ...]) zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表).若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同.利用*号操作符,可以将list unzip(解压). 二.用法示例: 读者看看下面的例子,

zip()的作用 先看一下语法: zip(iter1 [,iter2 [...]]) -> zip object Python的内置help()模块提供了一个简短但又有些令人困惑的解释: 返回一个元组迭代器,其中第i个元组包含每个参数序列或可迭代对象中的第i个元素.当最短的可迭代输入耗尽时,迭代器将停止.使用单个可迭代参数,它将返回1元组的迭代器.没有参数,它将返回一个空的迭代器. 与往常一样,当您精通更一般的计算机科学和Python概念时,此模块非常有用.但是,对于初学者来说,这段话只会引发更

介绍 zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表. ps. 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表. 例子 a = [1,2,3] b = [4,5,6] c = [4,5,6,7,8] zipped = zip(a,b) # 打包为元组的列表 # 输出:[(1, 4), (2, 5), (3, 6)] zip(a,c) # 元素个数与最短的列表一致 # 输出:[(

python中的print()函数和java中的System.out.print()函数都有着打印字符串的功能. python中: print("hello,world!") 输出结果为:hello,world! java中: System.out.print("hello,world!"); 输出结果为:hello,world! 我们可以看到,这两个函数的用法是一样的 print()函数还有这种用法: print("1+1=",1+1) 输出结

函数签名对象,表示调用函数的方式,即定义了函数的输入和输出. 在Python中,可以使用标准库inspect的一些方法或类,来操作或创建函数签名. 获取函数签名及参数 使用标准库的signature方法,获取函数签名对象:通过函数签名的parameters属性,获取函数参数. # 注意是小写的signature from inspect import signature def foo(value): return value # 获取函数签名 foo_sig = signature(foo)

math求旋转角度 python_Python根据欧拉角求旋转矩阵的实例相关推荐

  1. 前端:JS/23/JS内置对象(String对象,Array对象,Date对象,Boolean对象,Number对象,Math对象),实例:求圆的面积,求直角三角形

    JS内置对象 1,String对象 字符串对象,提供了对字符串进行操作的属性和方法 2,Array对象 数组对象,提供了数组操作方面的属性和方法 3,Date对象 日期时间对象,可以获取系统的日期时间 ...

  2. 欧拉角和旋转矩阵的学习心得

    1)欧拉角正负: 如果是右手系,旋转轴正方向面对观察者时,逆时针方向的旋转是正.顺时针方向的旋转是负. 即使用右手的大拇指指向旋转轴正方向,其他4个手指在握拳过程中的指向便是正方向. 在使用时,要注意 ...

  3. 卫星轨道推演计算相关知识点总结(含欧拉角、旋转矩阵、及各坐标系转化等)

    来源:轨道机动算法的C++实现_shirro123的专栏-CSDN博客 卫星轨道推演计算相关基础知识点总结 一.卫星的运动特性             二.卫星的空间坐标系               ...

  4. 【自动驾驶】欧拉角和旋转矩阵之间的转换

    欧拉角和旋转矩阵之间的转换 在使用Eigen时,经常会遇到旋转矩阵,旋转向量,四元数,欧拉角之间的两两相互转换.这里最常见.最容易出错的是欧拉角和旋转矩阵之间的相互转换.下面就欧拉角和旋转矩阵之间的转 ...

  5. 用java编写圆锥_求java大神帮忙 求大神帮助!Java

    导航:网站首页 > 求java大神帮忙 求大神帮助!Java 求java大神帮忙 求大神帮助!Java 相关问题: 匿名网友: 普通类 public class CircularA { //求圆 ...

  6. python求次幂_python如何求次幂?

    python中可以使用math模块中的pow()方法求次幂.pow() 方法返回xy(x的y次方)的值. math 模块 pow() 方法的语法:import math math.pow( x, y ...

  7. 用迭代法求 x=根号a。求平方根的迭代公式为:X(n+1)=(Xn+a/Xn) /2。

    [描述] 用迭代法求 x=根号a.求平方根的迭代公式为:X(n+1)=(Xn+a/Xn) /2. 要求前后两次求出的x的差的绝对值小于 10的负5次幂. [C语言] #include<stdio ...

  8. 欧拉角与旋转矩阵的转换关系

    欧拉角因为其奇异性,虽然在优化和插值的不会使用,但是当我们对别人描述一个旋转的过程是怎么样的时候,欧拉角还是很有用的,比如,做无人机姿态控制的时候使用的就是欧拉角,但是搞明白欧拉角与旋转矩阵的转换确实 ...

  9. 坐标系、欧拉角、旋转矩阵、四元数

    坐标系 1.地心惯性坐标系(iii系,inertialframeinertial\ frameinertial frame) 地心惯性坐标系是太阳系内的一个惯性坐标系,不随地球而转动.地心惯性坐标系用 ...

最新文章

  1. Python开发植物大战僵尸游戏(附github项目地址)
  2. WINDOWS SERVER 2003 AD中的5种操作主机
  3. c++ opencv 基本操作
  4. 老刘说NLP:焦虑被大肆贩卖下的自然语言处理学习思考
  5. bal插口_播放器上的这个“昂贵”的插口,是噱头还是真有用
  6. 【Machine Learning】TensorFlow实现K近邻算法预测房屋价格
  7. CentOS下MySQL 8.0安装配置
  8. mybatis plus 动态创建表和字段_mybatis-plus maven代码生成器
  9. 公制与英制长度转换 c语言,公制和英制的换算在线(在线公制转英制转换器)
  10. 微信小程序实现活动倒计时
  11. 【图像分类】2021-Twins NeurIPS
  12. PCB设计中常用class与subclass
  13. dva开源项目_后台前端管理系统,基于react、typescript、antd、dva及一些特别优秀的开源库实现...
  14. 微信支付服务商分账-请求单次分账
  15. 模糊测试工具Sulley开发指南(3)——整体介绍
  16. 软件项目管理文档模板目录
  17. 信息安全系统设计基础第十四周学习总结
  18. AndroidStudio下载的项目不能运行(运行Run图标变灰色,类文件图标为红色J)
  19. M87 黑洞照片的捕捉背后,这个程序媛功不可没
  20. 第三方开发的网贷系统安全如何保障

热门文章

  1. 关于我没赶上老师进度被迫自学第一天
  2. Docker(六)镜像安装
  3. 61分布式电商项目 - 商品详情页
  4. 企业在ERP实施中BOM管理的常见问题
  5. 《操作系统导论》笔记
  6. 安装算量软件一键识别电气系统图
  7. 狂神说SpringBoot16:富文本编辑器
  8. 《风火之旅》排队排出“新思绪”
  9. 某宾馆大楼建筑供配电系统设计(任务书+说明书+答辩PPT+CAD图纸)
  10. Exceptional Server