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

【matlab技巧】通过手绘的方法设计二维运动轨迹,附MATLAB程序

在这里插入图片描述

代码提供了一种直观的方式来使用鼠标在图形窗口中绘制线条,同时能够记录并显示用户绘制的轨迹坐标。用户通过左键点击绘制点,右键点击结束绘制,适合用于简单的图形交互和数据可视化。

文章目录

  • 代码作用
  • 运行
  • MATLAB源代码
  • 代码详解

代码作用

这段 MATLAB 代码实现了一个简单的图形绘制工具,用户可以通过鼠标在图形窗口中绘制线条。

运行

运行程序后,在出现的窗口上使用鼠标左击绘制需要的轨迹:

在这里插入图片描述

右击完成绘制后,命令行会输出轨迹中各点的坐标:

在这里插入图片描述

同时变量x和y也会存储上述数据。

MATLAB源代码

clc;clear;close all;
% 创建新图形窗口
figure;
axis([0 10 0 10]); % 设置坐标轴范围
grid on;
title('用鼠标左击绘图,右击结束绘制');% 初始化坐标数组
x = [];
y = [];% 鼠标绘图
hold on;
while true[xi, yi, button] = ginput(1); % 获取鼠标点击的一个点if isempty(button) || button == 1 % 左键点击x = [x; xi]; % 存储 x 坐标y = [y; yi]; % 存储 y 坐标plot(x, y, 'b-', 'LineWidth', 2); % 绘制线elseif button == 3 % 右键点击结束break; % 退出循环end
end
hold off;% 显示轨迹的 XY 坐标
disp('轨迹的 XY 坐标:');
disp([x, y]); % 打印坐标

代码详解

  1. 创建图形窗口

    • figure;:打开一个新的图形窗口。
  2. 设置坐标轴

    • axis([0 10 0 10]);:设置坐标轴的范围为 x 轴和 y 轴都在 0 到 10 之间。
    • grid on;:启用网格线,方便用户查看坐标。
  3. 设置标题

    • title('用鼠标左击绘图,右击结束绘制');:为图形添加标题,提示用户如何使用该工具。
  4. 初始化坐标数组

    • x = [];y = [];:初始化两个空数组,用于存储鼠标点击的 x 和 y 坐标。
  5. 绘图循环

    • hold on;:允许在同一图形上绘制多条线。
    • while true:进入一个无限循环,等待用户输入。
      • [xi, yi, button] = ginput(1);:使用 ginput 函数获取用户点击的鼠标坐标(xi, yi)和按钮状态(button)。
      • if isempty(button) || button == 1:检查是否左键点击(button == 1)。
        • x = [x; xi];y = [y; yi];:将新点击的坐标添加到数组中。
        • plot(x, y, 'b-', 'LineWidth', 2);:绘制当前的线条,使用蓝色(‘b-’)和线宽为 2。
      • elseif button == 3:检测右键点击(button == 3)。
        • break;:退出循环,结束绘制。
  6. 结束绘制

    • hold off;:停止在同一图形上绘制。
  7. 显示坐标

    • disp('轨迹的 XY 坐标:');:打印提示信息。
    • disp([x, y]);:输出用户绘制的所有坐标。

如需帮助,或有导航、定位滤波相关的代码定制需求,请点击下方卡片联系作者

相关文章:

  • Java 面向对象详解和JVM底层内存分析
  • ARM-Linux 完全入门
  • 基于朴素贝叶斯与 LSTM 的假新闻检测模型对比分析
  • 面试之 Java 新特性 一览表
  • 前端面经12 函数柯里化
  • 配置git从公网能访问-基于frp
  • 项目复习(2)
  • C语言:gcc 如何调用 Win32 打开文件对话框 ?
  • BERT 进阶:Albert 模型详解与实战
  • RFID系统:技术解析与应用全景
  • MATLAB学习笔记(七):MATLAB建模城市的雨季防洪排污的问题
  • Pandas 掌握Matplotlib基础绘图①
  • Redis——持久化
  • 单细胞转录组(1)
  • 嵌入式培训之数据结构学习(五)栈与队列
  • 手撕I2C和SPI协议实现
  • 机器学习回归预测中预处理的特征工程
  • 数据结构与算法——双向链表
  • QT调用Halcon查询所有摄像头名称
  • 基于 Python 的界面程序复现:标准干涉槽型设计计算及仿真
  • 体坛联播|水晶宫队史首夺足总杯,CBA总决赛爆发赛后冲突
  • 柬埔寨果农:期待柬埔寨榴莲走进中国市场
  • 孟夏韵评《无序的学科》丨误读与重构的文化漂流
  • 消息人士称俄方反对美国代表参加俄乌直接会谈
  • 上海率先推进生物制品分段生产试点,这款国产1类创新药获批上市
  • “免签圈”扩容,旅游平台:今年以来巴西等国入境游订单显著增加