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

相关推荐

  1. matlab 坐标系变换

    2024-07-21 01:06:01       36 阅读
  2. matlabMatlab三维绘图指南

    2024-07-21 01:06:01       49 阅读
  3. 三维旋转平移矩阵形式

    2024-07-21 01:06:01       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-21 01:06:01       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-21 01:06:01       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-21 01:06:01       45 阅读
  4. Python语言-面向对象

    2024-07-21 01:06:01       55 阅读

热门阅读

  1. Flutter 状态管理调研总结

    2024-07-21 01:06:01       18 阅读
  2. Elasticsearch 使用terms对long类型日期统计按月销售

    2024-07-21 01:06:01       18 阅读
  3. 轮播图变成响应式数据

    2024-07-21 01:06:01       19 阅读
  4. 基于python实现医院信息管理系统的设计与实现

    2024-07-21 01:06:01       18 阅读
  5. 为什么人们致力于解决深度学习的黑箱模型?

    2024-07-21 01:06:01       18 阅读
  6. 什么是TCP

    2024-07-21 01:06:01       18 阅读
  7. Ubuntu64新安装时问题的解决

    2024-07-21 01:06:01       16 阅读