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

news2024/11/26 10:50:39
% 输入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轴末端点
    
end

hold off;
% 设置坐标轴比例相等,并锁定三维视图
axis equal;
view(3);
grid on;
xlabel('X');
ylabel('Y');
zlabel('Z');
hold off;

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1795478.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker基础篇之本地镜像发布到阿里云

文章目录 1. 本地镜像发布到阿里云的流程2. 阿里云开发平台3. 将自己的本地镜像推送到阿里云 1. 本地镜像发布到阿里云的流程 阿里云ECS Docker生态如下图所示: 2. 阿里云开发平台 在控制台找到容器和镜像服务: 然后创建一个个人实例: 下面…

LeetCode 算法:合并区间c++

原题链接🔗:合并区间 难度:中等⭐️⭐️ 题目 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰…

java第二十课 —— 面向对象习题

类与对象练习题 编写类 A01,定义方法 max,实现求某个 double 数组的最大值,并返回。 public class Chapter7{public static void main(String[] args){A01 m new A01();double[] doubleArray null;Double res m.max(doubleArray);if(res !…

内地户口转香港身份的7种途径!2024年怎么同时拥有2个身份?一篇说明白

很多人还不知道怎么同时拥有内地身份和香港身份,这里一次性说明白,不同背景情况及政策有可能随时变化,这里分享最近拿香港身份的7种途径。 #01 优才『香港优秀人才计划』 获批准的申请人无须在来港定居前先获得本地雇主聘任。所有申请人均必…

搜索与图论:图中点的层次

搜索与图论&#xff1a;图中点的层次 题目描述参考代码 题目描述 输入样例 4 5 1 2 2 3 3 4 1 3 1 4输出样例 1参考代码 #include <cstring> #include <iostream> #include <algorithm>using namespace std;const int N 100010;int n, m; int h[N], e[N]…

【云岚到家】-day01-项目熟悉-查询区域服务开发

文章目录 1 云岚家政项目概述1.1 简介1.2 项目业务流程1.3 项目业务模块1.4 项目架构及技术栈1.5 学习后掌握能力 2 熟悉项目2.1 熟悉需求2.2 熟悉设计2.2.1 表结构2.2.2 熟悉工程结构2.2.3 jzo2o-foundations2.2.3.1 工程结构2.2.3.2 接口测试 3 开发区域服务模块3.1 流程分析…

【命令scp】Linux不同主机之间拷贝指令scp

scp可以在不同主机之间拷贝文件 # 将本地文件拷贝到远程服务器 scp a.tar changxr192.168.100.100:/home/changxr/cxr

Android——热点开关演讲稿

SoftAP打开与关闭 目录 1.三个名词的解释以及关系 Tethering——网络共享&#xff0c;WiFi热点、蓝牙、USB SoftAp——热点(无线接入点)&#xff0c;临时接入点 Hostapd——Hostapd是用于Linux系统的软件&#xff0c;&#xff0c;支持多种无线认证和加密协议&#xff0c;将任…

Visual Studio和BOM历史渊源

今天看文档无意间碰到了微软对编码格式解释&#xff0c;如下链接&#xff1a; Understanding file encoding in VS Code and PowerShell - PowerShell | Microsoft LearnConfigure file encoding in VS Code and PowerShellhttps://learn.microsoft.com/en-us/powershell/scrip…

锁存器(Latch)的产生与特点

Latch 是什么 Latch 其实就是锁存器&#xff0c;是一种在异步电路系统中&#xff0c;对输入信号电平敏感的单元&#xff0c;用来存储信息。锁存器在数据未锁存时&#xff0c;输出端的信号随输入信号变化&#xff0c;就像信号通过一个缓冲器&#xff0c;一旦锁存信号有效&#…

服务器数据恢复—raid5阵列上层XFS文件系统数据恢复案例

服务器存储数据恢复环境&#xff1a; 某品牌CX4-480型号服务器存储&#xff0c;该服务器存储内有一组由20块硬盘组建的raid5磁盘阵列&#xff1b;存储空间分配了1个lun。 服务器存储故障&#xff1a; 工作人员将服务器重装操作系统后&#xff0c;未知原因导致服务器操作系统层…

项目-双人五子棋对战: websocket的讲解与使用 (1)

完整代码见: 邹锦辉个人所有代码: 测试仓库 - Gitee.com 项目介绍 接下来, 我们将制作一个关于双人五子棋的项目, 话不多说先来理清一下需求. 1.用户模块 用户的注册和登录 管理用户的天梯分数, 比赛场数, 获胜场数等信息. 2.匹配模块 依据用户的天梯积分, 实现匹配机制. 3.对…

C语言小例程8/100

题目&#xff1a;输出特殊图案&#xff0c;请在c环境中运行&#xff0c;看一看 程序分析&#xff1a;字符共有256个。不同字符&#xff0c;图形不一样。 #include<stdio.h> int main() {char a176,b219;printf("%c%c%c%c%c\n",b,a,a,a,b);printf("%c%c%c…

前端图片在切换暗黑模式时太亮该怎么办?

通过css中的filter属性来实现&#xff0c;进行图片的色系反转、亮度、对比度调整等 1、invert 反转输入图像&#xff0c;值为 100% 则图像完全反转&#xff0c;值为 0% 则图像无变化 filter: invert(1); 2、blur 给元素应用高斯模糊效果。 filter: blur(5px); 3、brightnes…

stm32 定时器输出比较(OC)与PWM的理解和应用

不积跬步&#xff0c;无以至千里&#xff1b;不积小流&#xff0c;无以成江海。大家好&#xff0c;我是闲鹤&#xff0c;公众号 xxh_zone&#xff0c;十多年开发、架构经验&#xff0c;先后在华为、迅雷服役过&#xff0c;也在高校从事教学3年&#xff1b;目前已创业了7年多&am…

f1c100s 荔枝派 系统移植

一。交叉编译环境配置 1.1下载交叉工具链&#xff1a;https://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/arm-linux-gnueabi/ 1.2解压安装 在home目录下新建 工程目录&#xff1a;mkdir f1c100s_project 将windows下的gcc-linaro-7.2.1-2017.11-x86…

微信小程序毕业设计-预约挂号系统项目开发实战(附源码+论文)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;微信小程序毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计…

自导自演的39亿大雷?

深夜炸雷&#xff01;39亿存款或无法收回&#xff0c;11万股民懵了&#xff01;A股又出了离谱事件。 4日深夜&#xff0c;ST亿利公告称&#xff0c;公司存放在亿利财务公司的39亿存款已被划分为次级贷款&#xff0c;也就是不良贷款的一种&#xff0c;存在重大可收回性风险。又是…

【第一节】数据结构和算法绪论

目录 一、数据结构的起源与发展 二、什么是数据结构 三、数据的逻辑结构和存储结构 四、数据类型和数据结构 五、算法 六、算法与数据结构的关系 七、算法时间复杂度和空间复杂度 一、数据结构的起源与发展 数据结构的起源可以追溯至1968年。当时&#xff0c;美国的唐欧…

OpenCV的“画笔”功能

类似于画图软件的自由笔刷功能&#xff0c;当按住鼠标左键&#xff0c;在屏幕上画出连续的线条。 定义函数&#xff1a; import cv2 import numpy as np# 初始化参数 drawing False # 鼠标左键按下时为True ix, iy -1, -1 # 鼠标初始位置# 鼠标回调函数 def mouse_paint(…