python实现三维坐标旋转计算

2023-05-16

参考文章:python实现三维坐标旋转计算

空间三维坐标系旋转计算

计算空间三维坐标系变换一般都是利用旋转矩阵或者欧拉公式。python有个scipy库可以直接用于计算空间三维坐标变换。

支持库

pip install scipy

旋转矩阵计算代码

axis是旋转轴,radian旋转角度(弧度)

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

坐标计算代码

rot_matrix是旋转矩阵,x是坐标数组[x,y,z]

np.dot(rot_matrix,x)

完整代码

import numpy as np
import math
import scipy.linalg as linalg
import matplotlib as mpl 
from mpl_toolkits.mplot3d import Axes3D 
import matplotlib.pyplot as plt 

#旋转矩阵 欧拉角
def rotate_mat(axis, radian):
    rot_matrix = linalg.expm(np.cross(np.eye(3), axis / linalg.norm(axis) * radian))
    return rot_matrix
# 分别是x,y和z轴,也可以自定义旋转轴
axis_x, axis_y, axis_z = [1,0,0], [0,1,0], [0, 0, 1]rand_axis = [0,0,1]
#旋转角度
yaw = math.pi/180
#返回旋转矩阵
rot_matrix = rotate_mat(rand_axis, yaw)
print(rot_matrix)
# 计算点绕着轴运动后的点
x = [-1010,105.43,-244]
x1 = np.dot(rot_matrix,x)
# 旋转后的坐标
print(x1)   
# 计算各轴偏移量
print([x1[i]-x[i] for i in range(3)])

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python实现三维坐标旋转计算 的相关文章

  • ios Instruments之Allocations

    文章目录 一 span class hljs function Allocations 监测内存分配 span 1 简介 2 如何使用 一 Allocations 1 简介 性能优化中使用Instruments Allocations工具进
  • linux-Centos-7-64位:4、 mysql安装

    从最新版本的Linux系统开始 xff0c 默认的是 Mariadb而不是MySQL xff01 这里依旧以mysql为例进行展示 1 先检查系统是否装有mysql rpm qa span class hljs string style c
  • Win10 WSL忘记用户密码,重置密码

    win10中WSL登录是不用密码的 xff0c 当需要使用用户权限但是忘记密码的时候 xff0c 可以使用如下办法以root身份登录WSL并重置密码 1 以管理员身份打开 PowerShell 2 输入命令 wsl exe user roo
  • 51单片机定时时间的计算

    单片机根据计时 计数模式的不同 xff0c 来进行计算 M1 M0 工作模式 说明 0 0 0 13位计时计数器 xff08 8192 xff09 0 1 1 16位计时计数器 xff08 65536 xff09 1 0 2 8位计时计数器
  • Go语言之禅

    本文翻译自Go社区知名Gopher和博主Dave Cheney的文章 The Zen of Go 本文来自我在GopherCon Israel 2020上的演讲 文章很长 如果您希望阅读精简版 xff0c 请移步到the zen of go
  • UIScrollView及其子类停止滚动的监测

    作为iOS中最重要的滑动控件 UIScrollView居然没有停止滚动的Delegate方法 这有点蛋疼 但是我们可以根据滚动状态来判断是否滚动 span class hljs preprocessor pragma mark scroll
  • PCL库中Marching Cubes(移动立方体)算法的解析

    PCL库中Marching Cubes xff08 移动立方体 xff09 算法解析 1 Marching Cubes算法的原理这里不再赘述 xff0c 不懂的话 xff0c 提供一下文献资源 xff1a 链接 xff1a MARCHING
  • ubuntu18.04安装cuda-10.0和cudnn-7.4.2

    安装cuda 10 0 1 gcc 版本 Ubuntu18 04默认gcc g 43 43 7 3版本 xff0c 如果安装cuda 9并不支持 gcc g 43 43 7 xff0c 所以先降级至6或6以下 我自己的gcc是7 5 0 安
  • Ubuntu安装anaconda3后找不到conda命令

    Ubuntu安装anaconda3后找不到conda命令的原因是没有把anaconda3添加到路径 xff0c 类似于Windows中添加到环境变量 xff0c 所以找不到命令 解决方法是在终端中运行一下命令 xff1a echo 39 e
  • uCharts Y轴格式化

    官方文档 uCharts跨平台图表库 1 Y轴格式化用法 xff1a yAxis data calibration true position 39 left 39 title 39 折线 39 titleFontSize 12 forma
  • C#/.NET Winform 界面库UI推荐

    以下是C CSkin界面库的官方板块 xff1a http bbs cskin net thread 622 1 1 html 几款开源的Windows界面库 https blog csdn net blade2001 article de
  • layui中实现按钮点击事件

    首先 xff0c 小编要告诉大家一个残酷的现实 xff0c 那就是小编没有找到layui对点击事件的支持 这里的点击事件是指单纯的点击事件 xff0c 而不是提交事件 xff0c 或者是数据表格中内嵌的button xff0c 对于这两者
  • C# devexpress gridcontrol 分页 控件制作

    这个小小的功能实现起来还是有一点点复杂 分页单独一个usercontrol 出来 导致查询换页 与gridcontrol页面分离 一般通过换页事件通知girdcontrol 做出查询 查询来说有时是查询所有 有时是查询一个月 或者别的时间
  • SQL Server 创建索引(CREATE NONCLUSTERED INDEX )

    索引的简介 xff1a 索引分为聚集索引和非聚集索引 xff0c 数据库中的索引类似于一本书的目录 xff0c 在一本书中通过目录可以快速找到你想要的信息 xff0c 而不需要读完全书 索引主要目的是提高了SQL Server系统的性能 x
  • .NET Core/.NET5/.NET6 开源项目汇总:(权限)管理系统

    前言 企业管理系统一般包含后台管理UI 组织机构管理 权限管理 日志 数据访问 表单 工作流等常用必备功能 下面收集的几款优秀开源的管理系统 xff0c 值得大家入门学习 如有新的优秀项目 xff0c 我会不断补充 开源项目是众多组织与个人
  • Nginx配置指令(一)

    1 daemon 语法 xff1a daemon on off 默认 xff1a on 如果使用daemon off xff0c nginx将会运行在前台 生产远景不建议如此使用 xff0c 虽然可以 2 env 语法 xff1a env
  • SQL将Json字符串转为表格

    支持复杂结构的使用 使用Parent ID来对应Object ID产生关系就好 实现对Json数据的从文字到表变量的转换 例 34 FieldName 34 34 DateKey 34 34 Title 34 34 汇总后日期 34 34
  • JavaScript实现动态添加的元素添加点击事件

    在页面开发过程中常常遇到需要动态添加元素 xff0c 然后给这一元素绑定相关事件的情况 xff0c 这种情况下一般需要给元素加上相关属性 xff0c 然后写这些元素的事件函数即可 动态添加的元素怎么绑定事件呢 xff1f 原生JavaScr
  • javascript解决小数的加减乘除精度丢失的方案

    原因 js按照2进制来处理小数的加减乘除 在arg1的基础上 将arg2的精度进行扩展或逆扩展匹配 所以会出现如下情况 javascript js 的小数点加减乘除问题 xff0c 是一个js的bug如0 3 1 61 0 29999999
  • SqlServer 获取字符串中数字,中文及字符部分数据

    获取英文字符数据 Create function dbo Fun GetChar 64 No varchar 100 RETURNS varchar 100 AS BEGIN WHILE PATINDEX 39 A Za z 39 64 N

随机推荐

  • Asp.net 如何跳过基于表单的身份验证(authentication)

    淘到的Form验证过程 xff1a xff08 如果所有页面继承了同一个判断是否登录的类 xff0c 路径的判断是个问题 xff0c 文件所处的位置可能不同 xff0c 有的是二级菜单 xff0c 有的三级 还有的是通过Request Ur
  • ASP.NET Core读取Request.Body的正确方法

    参考文章 xff1a 深入探究ASP NET Core读取Request Body的正确方式 https www cnblogs com wucy archive 2021 05 06 14699717 html 当然我们也可以自己实现一套
  • 【Python+OpenCV入门学习】五、绘制几何图形

    本篇文章 xff0c 将学习如何 绘制几何图形 xff0c 如画线 圆 矩形 椭圆等 xff0c 另外还学习在图像中增加文本信息 主要学习 函数 line circle rectangle ellipse putText 等 的使用 环境
  • 交换机性能的常用指标及术语解释

    交换机性能的常用指标及术语解释 流量控制 背压技术Back pressure 基于IEEE802 3X标准 xff0c 当处理发现缓冲器将要填满时 xff0c 就 向源发站发出一个假冲突信号 xff0c 使之延迟一个随机时间 xff0c 然
  • Ubuntu22.04-添加中文输入法

    1 安装中文语言包 进入setting xff08 设置 xff09 gt 区域与语言 选项卡 进入 管理已安装的语言 第一进入将提示 语言支持没有完整安装 xff0c 点击安装即可 安装过程会将为进行补充安装的语言进行下载安装 设置中文
  • 修改apache设置,支持UTF8和GBK

    1 修改 etc httpd conf httpd conf 文件 xff0c 将其中AddDefaultCharset行注释掉 前面加 2 保存后重新启动apache usr sbin apachectl restart或者service
  • 数论——GCD

    ZOJ Problem Set 3846 题意 xff1a 给 N 个数 xff0c 任取两个数Ai Aj xff0c 求出这两数的GCD xff0c 然后用GCD替换这两个数的值 直至这n个数的值都相等为止 xff0c 此时输出求GCD的
  • 群晖DDNS和端口转发等相关讲解

    文章目录 废话篇前言本文知识概要域名和IP地址的了解域名解析内网IP和外网IPDDNS是什么 xff1f 群晖如何设置DDNS端口转发后言协助改进 废话篇 本篇文章为原创文章 xff0c 转载请注明出处 xff0c 感谢 本人也有个人博客
  • Python更新失败:SSL错误——Conda/Python

    Python更新失败 SSL错误 xff08 1 xff09 是正常Python环境下的错误 xff1a 例如 xff1a Could not fetch URL https pypi tuna tsinghua edu cn simple
  • c语言经典题目--字符串篇

    1 有效的字母异位词 给定两个字符串 s 和 t xff0c 编写一个函数来判断 t 是否是 s 的字母异位词 注意 xff1a 若 s 和 t 中每个字符出现的次数都相同 xff0c 则称 s 和 t 互为字母异位词 include lt
  • UITextField和UITextView被键盘遮住的处理办法

    void textFieldDidBeginEditing UITextField textField float offset 61 0 0f if self txtField 61 61 textField offset 61 180
  • CAShapeLayer动画(画圆效果)

    关于CAShapeLayer和DrawRect的比较 DrawRect xff1a DrawRect属于CoreGraphic框架 xff0c 占用CPU xff0c 消耗性能大 CAShapeLayer xff1a CAShapeLaye
  • iOS调用各大地图APP导航,进行路线规划

    最近收到了这么一个需求 xff0c 就是支持目前主流的地图APP导航 xff0c 也就是说跳转至第三方应用 说实在的一开始我是拒绝的 xff0c 不过最后还是做了 xff0c 全是体力活 xff0c 为了方便大家 xff0c 我就终结一下
  • stm32cubeMX+vscode开发编译调试stm32程序

    stm32cubeMX 43 vscode开发编译调试stm32程序 安装vscode安装make工具安装交叉编译工具链安装openocd安装clang llvm生成并编译代码配置vscode安装插件配置文件c cpp properties
  • 如何在 Ubuntu 20.04 上安装 Jenkins?

    介绍 当面临重复性技术任务时 xff0c 寻找可行的自动化解决方案可能是一件苦差事 使用开源自动化服务器 Jenkins xff0c 您可以有效地管理从构建到部署软件的任务 Jenkins 是基于 Java 的 xff0c 从 Ubuntu
  • 并查集

    先上题目 题目描述 如题 xff0c 现在有一个并查集 xff0c 你需要完成合并和查询操作 输入格式 第一行包含两个整数N M xff0c 表示共有N个元素和M个操作 接下来M行 xff0c 每行包含三个整数Zi Xi Yi 当Zi 61
  • 使用PN532进行IC卡的Linux和Windows平台的数据读取以及写入过程

    强调 xff1a 勿用于非法用途 本文介绍使用PN532进行IC卡的Linux和Windows平台的数据读取以及写入过程 注意 xff1a 在树莓派平台只做到了卡片解密 xff0c 并没能写入UID卡 xff0c 我不清楚具体原因 xff0
  • 必须要掌握的单链表操作大全

    前言 号外号外 xff0c 笔者最近在系统整理一些 Java 后台方面的面试题和参考解答 xff0c 有找工作需求的童鞋 xff0c 欢迎关注我的 Github 仓库 xff0c 如果觉得不错可以点个 star 关注 xff1a 1 awe
  • python数据处理(数据集的格式转换)

    摘要 本文总结常常用到的一些数据处理方法 xff0c 主要是numpy和python 数组 列表 字典的操作 一 保存N维数组 ndarray 到本地文件 本节参考原文在此 xff0c 本节复述目的是防止丢失 xff0c 时常复习 1 需求
  • python实现三维坐标旋转计算

    参考文章 xff1a python实现三维坐标旋转计算 空间三维坐标系旋转计算 计算空间三维坐标系变换一般都是利用旋转矩阵或者欧拉公式 python有个scipy库可以直接用于计算空间三维坐标变换 支持库 pip install scipy