映射点集,其值表示半径为R的圆的半径

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了映射点集,其值表示半径为R的圆的半径相关的知识,希望对你有一定的参考价值。

我有一组代表半径的数据点。我的阈值半径是R.如果我的数据点的半径<R或半径> R,我想用Matlab直观地显示它。

我已经成功地绘制了圆(使用圆的方程),但我的数据点被绘制在圆外,即使它们的值小于R.我认为我没有正确映射数据点。

我正在做以下事情:

%% Circle %%
% Radius = 1;
tx = linspace(-1,1,100);  %% X-data
ty = sqrt(1-tx.^2);      %% Y-data
ty2 = -ty;                %% (-)Y-data
%% Data Points %%
list_radius =[0.5870 0.2077 0.3012 0.4709 1.1524 6.7545 1.5581 1.8074];
%% PLOT %%
plot(tx,ty,':r',tx,ty2,':r')
hold on 
plot(list_radius)
hold off

我期待在圆圈内看到list_radius <1的点和圆圈外的list_radius> 1的点。谢谢你的帮助!

答案

我建议你绘制圆圈,生成xy点为一个圆圈

x = R·cos(θ)

y = R·sin(Θ)

where Theta is a vector from 0 to 2*pi and R is your desired radius. Using this equation you don't have to generate a vector ty2 and you can plot your circle with one plot command.
R = 1;
theta = linspace(0,2*pi,1000);

tx = R*cos(theta);
ty = R*sin(theta);

list_radius =[0.5870 0.2077 0.3012 0.4709 1.1524 6.7545 1.5581 1.8074];

plot(tx,ty,':r');
hold on;
plot(list_radius,zeros(1,numel(list_radius)),'*');
axis equal

有了这个片段,我假设你的list_radius点位于x轴上。

以上是关于映射点集,其值表示半径为R的圆的半径的主要内容,如果未能解决你的问题,请参考以下文章

编写程序,解析在命令行输入的圆的半径,计算圆的周长和面积(结果保留两位小数)?

标准输入输出

求半径为r的圆的内接正n边形的面积。要求: r和n由键盘输入

C语言判断两个半径相等的圆的位置关系

C语言判断两个半径相等的圆的位置关系

UVA 12304 /// 圆的综合题 圆的模板