R2022b matlab appdesigner里鼠标点击坐标区控件上的图片,显示该点的坐标,详细步骤与代码
时间: 2024-03-15 21:47:16 浏览: 165
以下是实现步骤:
1. 在 App Designer 中创建一个坐标区控件,并添加一张图片。
2. 在坐标区控件的 Callbacks 中添加一个 ButtonDownFcn 回调函数,该函数将在用户单击图片时触发。
3. 在 ButtonDownFcn 函数中,获取鼠标单击位置的坐标,并将其显示在 UI 中。
以下是示例代码:
1. 创建坐标区控件并添加图片
```matlab
% 在 App Designer 中创建一个坐标区控件,并命名为 "axes1"
axes1 = uiaxes(app.UIFigure);
% 加载一张图片
img = imread('example.jpg');
imshow(img, 'Parent', axes1);
```
2. 添加 ButtonDownFcn 回调函数
```matlab
% 在 axes1 的 Callbacks 中添加一个 ButtonDownFcn 回调函数
axes1.ButtonDownFcn = @axes1_ButtonDownFcn;
```
3. 编写 ButtonDownFcn 回调函数
```matlab
function axes1_ButtonDownFcn(app, event)
% 获取鼠标单击位置的坐标
pos = event.IntersectionPoint(1, 1:2);
% 将坐标值显示在 UI 中
app.CoordinateLabel.Text = sprintf('x=%d, y=%d', pos(1), pos(2));
end
```
其中,`CoordinateLabel` 是一个 Label 控件,用于显示鼠标单击位置的坐标。
注意:为了使该功能能够正常工作,需要确保坐标区控件的 Units 属性设置为 pixels,例如:
```matlab
axes1.Units = 'pixels';
```
阅读全文