在 MATLAB 图形上选择一个点并将标签准确地放在该点上
Selecting a point on MATLAB figure and putting label exactly on that point
我在 matlab 中有一张图像,我提示用户 select 该图像上的某些点。所以我正在使用 getpts 方法来完成它。所以它工作正常,但我只想用 X 表示用户在图像上单击的点。但是,X 不在我单击的点上,而是在它的侧面。
有谁知道如何让它死机?这是我正在使用的代码和一些图片来更明确地表示它。
谢谢你
代码:
[x_Ls y_Ls] = getpts(handles.axes1)
handles.Ls = [x_Ls y_Ls]
setappdata(0,'Lsvalue',[x_Ls y_Ls])
text(x_Ls,y_Ls,'X' , 'FontSize', 16, 'FontWeight', 'Bold', 'Color', 'k','Parent',handles.axes1);
您的问题是,包含 "X" 的 text
对齐,其左下角位于 [x_Ls, y_Ls]
。如果将 HorizontalAlignment
和 VerticalAlignment
设置为 "center"
,情况应该会有所改善。
但是由于字体总是在 "visible" 字母周围定义某些边界,因此您很难让 "X" 中心准确地位于您想要的位置。
如果您希望 "X" 以定义的点为中心,只需使用 plot
而不是 text
应该更容易:
plot(x_Ls, y_Ls, 'x', 'MarkerSize', 10, 'MarkerEdgeColor', 'b', 'MarkerFaceColor', 'b')
应该会在您点击的地方生成一个 "X"。
您可能需要增加标记大小...
我在 matlab 中有一张图像,我提示用户 select 该图像上的某些点。所以我正在使用 getpts 方法来完成它。所以它工作正常,但我只想用 X 表示用户在图像上单击的点。但是,X 不在我单击的点上,而是在它的侧面。
有谁知道如何让它死机?这是我正在使用的代码和一些图片来更明确地表示它。
谢谢你
代码:
[x_Ls y_Ls] = getpts(handles.axes1)
handles.Ls = [x_Ls y_Ls]
setappdata(0,'Lsvalue',[x_Ls y_Ls])
text(x_Ls,y_Ls,'X' , 'FontSize', 16, 'FontWeight', 'Bold', 'Color', 'k','Parent',handles.axes1);
您的问题是,包含 "X" 的 text
对齐,其左下角位于 [x_Ls, y_Ls]
。如果将 HorizontalAlignment
和 VerticalAlignment
设置为 "center"
,情况应该会有所改善。
但是由于字体总是在 "visible" 字母周围定义某些边界,因此您很难让 "X" 中心准确地位于您想要的位置。
如果您希望 "X" 以定义的点为中心,只需使用 plot
而不是 text
应该更容易:
plot(x_Ls, y_Ls, 'x', 'MarkerSize', 10, 'MarkerEdgeColor', 'b', 'MarkerFaceColor', 'b')
应该会在您点击的地方生成一个 "X"。 您可能需要增加标记大小...