【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]); % 打印坐标
代码详解
-
创建图形窗口:
figure;
:打开一个新的图形窗口。
-
设置坐标轴:
axis([0 10 0 10]);
:设置坐标轴的范围为 x 轴和 y 轴都在 0 到 10 之间。grid on;
:启用网格线,方便用户查看坐标。
-
设置标题:
title('用鼠标左击绘图,右击结束绘制');
:为图形添加标题,提示用户如何使用该工具。
-
初始化坐标数组:
x = [];
和y = [];
:初始化两个空数组,用于存储鼠标点击的 x 和 y 坐标。
-
绘图循环:
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;
:退出循环,结束绘制。
-
结束绘制:
hold off;
:停止在同一图形上绘制。
-
显示坐标:
disp('轨迹的 XY 坐标:');
:打印提示信息。disp([x, y]);
:输出用户绘制的所有坐标。
如需帮助,或有导航、定位滤波相关的代码定制需求,请点击下方卡片联系作者