Matlab - 绘制一个中心可见的圆圈

时间:2015-04-02 03:58:39

标签: matlab function plot geometry

我有兴趣在Matlab中绘制一个圆圈,但我希望它的中心可见。因为我希望它的中心用点标记。目前我正在使用scatter功能两次:

scatter(1,2,1000,'r') # plots the circle
hold on
scatter(1,2,10,'r','filled') # plots the centre (as a very small circle
    # so it appears like a dot)

我想知道是否有一个内置函数可以让我只用一步就能做到这一点?绘制一个中心可见的圆圈?

非常感谢

2 个答案:

答案 0 :(得分:2)

您可以显示Unicode character U+2609,其中将圆圈和圆点合并为一个字符。

由于该数字2609是十六进制的,您需要使用hex2dec将十六进制字符串转换为十进制数字,然后将该十进制数字解释为char的Unicode字符。然后可以使用text在当前轴上显示该字符。它也可以用于图标题,轴标签等,像任何其他字符串一样。

重复使用时,请在变量中定义字符

dotcircle = char(hex2dec('2609'));

然后你可以方便地使用它。例如:

axis([0 1 0 1])
title(['Example with character "' dotcircle '"'])
text(.25,.25, dotcircle, 'fontsize',20, 'color',[.3 .3 .3])
text(.5,.5, dotcircle, 'fontsize',40, 'color','r')
text(.75,.75, dotcircle, 'fontsize',60, 'color','b')

enter image description here

答案 1 :(得分:1)

我不相信有这样做的内置功能,但你可以轻松写一个:

function drawMyCircle(x, y, cirlce_r, center_r, color)
hold on;
scatter(x, y, circle_r, color);
scatter(x, y, center_r, color, 'fillled');
hold off;

如果你担心性能问题,那么这个问题就像你能得到的一样好--Matlab仍然需要绘制两个独立的对象才能完成这项工作。