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

代码片段 | Matlab三维图显示[ R T 0 1] 的最佳方法

% 输入N组RT矩阵
N = 4;
R = zeros(3, 3, N);
T = zeros(3, N);
R(:,:,1) = [-0.902608 0.250129 0.350335 ; 0.314198 0.939127 0.138996 ;-0.294242 0.235533 -0.926253 ];
T(:,1) = [205.877;2796.02; 907.116];R(:,:,2) = [-0.123936 0.643885 0.755018 ;0.816604 0.464468 -0.264489;-0.526679 0.602176 -0.599994];
T(:,2) = [ 290.423;2734.71; 849.983 ];
R(:,:,3) = [-0.28978 0.539335 -0.790661;0.383489 -0.691464 -0.61222;-0.876905 -0.48062 -0.00645646 ];
T(:,3)= [ 422.686;2660.191;920.816];R(:,:,4)= [-0.526679 0.602176 -0.599994;0.114287 0.928046 0.354498;0.575541 0.229001 -0.785055];T(:,4)= [ 306.23;2898.27;887.644];  % 自适应设置初始坐标值
x_start = min(T(1,:)) - 10;
y_start = min(T(2,:)) - 10;
z_start = min(T(3,:)) - 10;% 创建坐标轴
figure;
hold on;
xlabel('X');
ylabel('Y');
zlabel('Z');
axis equal;% 绘制坐标轴起始点
%scatter3(x_start, y_start, z_start, 'filled', 'MarkerFaceColor', 'r', 'MarkerEdgeColor', 'k');% 绘制N组坐标轴情况和轴原点位置
for i = 1:N% 获取当前TF矩阵R_curr = R(:,:,i);T_curr = T(:,i);% 定义箭头长度arrow_length = 200;% 计算坐标轴末端点x_end = R_curr(1, :) * arrow_length + T_curr(1);y_end = R_curr(2, :) * arrow_length + T_curr(2);z_end = R_curr(3, :) * arrow_length + T_curr(3);% 绘制坐标轴quiver3(T_curr(1), T_curr(2), T_curr(3), R_curr(1, 1) * arrow_length, R_curr(2, 1) * arrow_length, R_curr(3, 1) * arrow_length, 'Color', 'r', 'LineWidth', 2); % X轴quiver3(T_curr(1), T_curr(2), T_curr(3), R_curr(1, 2) * arrow_length, R_curr(2, 2) * arrow_length, R_curr(3, 2) * arrow_length, 'Color', 'g', 'LineWidth', 2); % Y轴quiver3(T_curr(1), T_curr(2), T_curr(3), R_curr(1, 3) * arrow_length, R_curr(2, 3) * arrow_length, R_curr(3, 3) * arrow_length, 'Color', 'b', 'LineWidth', 2); % Z轴% 绘制坐标轴末端点%scatter3(x_end(1), x_end(2), x_end(3), 'filled', 'MarkerFaceColor', 'r'); % X轴末端点%scatter3(y_end(1), y_end(2), y_end(3), 'filled', 'MarkerFaceColor', 'g'); % Y轴末端点%scatter3(z_end(1), z_end(2), z_end(3), 'filled', 'MarkerFaceColor', 'b'); % Z轴末端点endhold off;
% 设置坐标轴比例相等,并锁定三维视图
axis equal;
view(3);
grid on;
xlabel('X');
ylabel('Y');
zlabel('Z');
hold off;

能够很好地观测到位置及坐标轴旋转情况

http://www.lryc.cn/news/365369.html

相关文章:

  • 2024百度之星 跑步
  • 【git】TortoiseGitPlink Fatal Error 解决方法
  • 行心科技|中科利众:健康科技新合作,营养与科技融合前行
  • Xcode 打包报错Command PhaseScriptExecution failed with a nonzero exit code
  • 使用 IPSET 添加 CDN 节点 IP(IPv4/IPv6)到防火墙白名单
  • oracle trim 函数很慢,加trim以后执行超慢,执行计划求解
  • 【Leetcode Python】
  • Ubuntu系统的k8s常见的错误和解决的问题
  • Scala学习笔记7: 对象
  • 【Linux】进程切换环境变量
  • 嵌入式学习记录6.6(拷贝构造/友元函数/常成员函数)
  • 宝塔 nginx 配置负载均衡 upstream
  • idea 插件推荐
  • 【Linux】Linux环境基础开发工具_5
  • Java Web学习笔记15——DOM对象
  • 中电联系列一:rocket手把手教你理解中电联协议!
  • (面试官问我微服务与naocs的使用我回答了如下,面试官让我回去等通知)微服务拆分与nacos的配置使用
  • 冯喜运:6.7今日黄金原油行情分析及独家操作策略
  • Android 蓝牙概述
  • Python3 笔记:字符串的 find()、rfind()、index()、rindex()
  • 【研发日记】Matlab/Simulink软件优化(二)——通信负载柔性均衡算法
  • Python 设计模式(行为型)
  • 电商API商品数据采集接口||助力电商企业采集商品大数据提高开发效率
  • Day34 事件聚合器实现消息过滤功能
  • 前端 JS 经典:Reflect 本质
  • accelerate 的一个tip:early stopping 处可能存在的bug
  • 企业数据挖掘建模平台极简建模流程
  • 使用pkg打包了一个使用了sqlite3的nodejs项目,启动后闪退
  • 网络编程(UPD和TCP)
  • cesium 之 flyTo、setView、lookat