当前位置: 首页 > news >正文

Matlab演示三维坐标系旋转

请添加图片描述

function showTwo3DCoordinateSystemsWithAngleDifference()
clear all
close all
% 第一个三维坐标系
origin1 = [0 0 0];
x_axis1 = [1 0 0];
y_axis1 = [0 1 0];
z_axis1 = [0 0 1];% 绕 x 轴旋转 30 度的旋转矩阵
theta_x = 30 * pi / 180;
rotation_matrix_x = [1 0 0; 0 cos(theta_x) -sin(theta_x); 0 sin(theta_x) cos(theta_x)];% 绕 y 轴旋转 45 度的旋转矩阵
theta_y = 45 * pi / 180;
rotation_matrix_y = [cos(theta_y) 0 sin(theta_y); 0 1 0; -sin(theta_y) 0 cos(theta_y)];% 对第二个坐标系的坐标轴进行旋转
x_axis2 = rotation_matrix_x * rotation_matrix_y * [1 0 0]';
y_axis2 = rotation_matrix_x * rotation_matrix_y * [0 1 0]';
z_axis2 = rotation_matrix_x * rotation_matrix_y * [0 0 1]';% 第二个三维坐标系的原点
origin2 = [0 0 0];% 绘制第一个坐标系(实线)
figure;
hold on;
quiver3(origin1(1), origin1(2), origin1(3), x_axis1(1), x_axis1(2), x_axis1(3), 'r');
quiver3(origin1(1), origin1(2), origin1(3), y_axis1(1), y_axis1(2), y_axis1(3), 'g');
quiver3(origin1(1), origin1(2), origin1(3), z_axis1(1), z_axis1(2), z_axis1(3), 'b');% 绘制第二个坐标系(虚线)
quiver3(origin2(1), origin2(2), origin2(3), x_axis2(1), x_axis2(2), x_axis2(3), 'r--');
quiver3(origin2(1), origin2(2), origin2(3), y_axis2(1), y_axis2(2), y_axis2(3), 'g--');
quiver3(origin2(1), origin2(2), origin2(3), z_axis2(1), z_axis2(2), z_axis2(3), 'b--');grid on;
xlabel('X');
ylabel('Y');
zlabel('Z');
title('具有角度差的两个三维坐标系显示');
legend('第一个坐标系 X 轴', '第一个坐标系 Y 轴', '第一个坐标系 Z 轴', '第二个坐标系 X 轴', '第二个坐标系 Y 轴', '第二个坐标系 Z 轴');end

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Python基础语法篇(下)+ 数据可视化
  • 【Gin】精准应用:Gin框架中工厂模式的现代软件开发策略与实施技巧(上)
  • 前端表格解析方法
  • Python酷库之旅-第三方库Pandas(037)
  • 【iOS】内存对齐
  • Windows版MySQL5.7解压直用(如何卸载更换位置重新安装)
  • 六边形动态特效404单页HTML源码
  • C语言-网络编程-UDP通信创建流程
  • 大数据之数据抽取架构演变过程
  • 数据结构 —— B树
  • 【BUG】已解决:WslRegisterDistribution failed with error: 0x800701bc
  • Qt Style Sheets-使用样式表自定义 Qt 部件
  • Freedom of Choice
  • R语言模型评估网格搜索
  • Linux网络——套接字与UdpServer
  • (三)从jvm层面了解线程的启动和停止
  • JavaScript标准库系列——Math对象和Date对象(二)
  • node.js
  • PHP 7 修改了什么呢 -- 2
  • PHP的Ev教程三(Periodic watcher)
  • Python_OOP
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Spring Cloud Feign的两种使用姿势
  • 笨办法学C 练习34:动态数组
  • 关于字符编码你应该知道的事情
  • 类orAPI - 收藏集 - 掘金
  • 面试遇到的一些题
  • 一起参Ember.js讨论、问答社区。
  • 转载:[译] 内容加速黑科技趣谈
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • #考研#计算机文化知识1(局域网及网络互联)
  • (1)STL算法之遍历容器
  • (21)起落架/可伸缩相机支架
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (黑马C++)L06 重载与继承
  • (每日一问)计算机网络:浏览器输入一个地址到跳出网页这个过程中发生了哪些事情?(废话少说版)
  • (算法)求1到1亿间的质数或素数
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • (转)详解PHP处理密码的几种方式
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • (自适应手机端)响应式服装服饰外贸企业网站模板
  • .net 8 发布了,试下微软最近强推的MAUI
  • .Net Core与存储过程(一)
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • ??eclipse的安装配置问题!??
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • @Resource和@Autowired的区别