【问题标题】:Widen a fibonacci flower using a for cycle使用 for 循环加宽斐波那契花
【发布时间】:2021-01-19 04:37:57
【问题描述】:

我想知道在这个例子中我曾经练习过 for 循环,我需要更改此代码以更改看起来像这样的图像,一些基本的黄金角图:

到这个例子

    phi = (sqrt(5)+1)/2;% Número áureo %Golden Number
golden_angle = 2*pi/phi;
max_angle = 10000;
theta = 1:golden_angle:max_angle;% ángulo %Angle
r = sqrt(theta);% radio %Radius
[x,y] = pol2cart(theta,r);% coordenadas polares a cartesianas %Polar to cartesian
figure
plot(x,y,'.','MarkerSize',10);axis off;

我知道“MarkerSize”旁边的数字会使花瓣变宽,但我尝试更改数组中的 theta 值但没有特别的结果,只是我改变了颜色而不是大小。我还尝试将这些作为循环,我认为它会创建圆形作为金色花瓣,但不知道如何实现它。但是如何让它们在迭代中越来越小呢?我认为花瓣的总数是 2575。

for i = 1:10
   
    %plot(x,y,'.',x(i),y(i),'.','MarkerSize',10*abs(y(i)),'MarkerFaceColor','g')

【问题讨论】:

    标签: arrays matlab for-loop plot fibonacci


    【解决方案1】:

    您可以使用scatter 代替plotscatter 允许将标记大小设置为参数:

    phi = (sqrt(5)+1)/2;% Número áureo %Golden Number
    golden_angle = 2*pi/phi;
    max_angle = 10000;
    theta = 1:golden_angle:max_angle;% ángulo %Angle
    r = sqrt(theta);% radio %Radius
    marker_size = 10 * r / sqrt(max_angle);   % new
    [x,y] = pol2cart(theta,r);% coordenadas polares a cartesianas %Polar to cartesian
    
    figure
    scatter(x,y,marker_size, 'fill'); axis off;               % new: scatter
    

    marker_size 数据在表上看起来不错,使用theta 从 0 增加到 10。

    但是,在我的 Matlab (R2013b) 上,渲染非常粗糙。

    【讨论】:

    • 你可以改变颜色(白到蓝)而不是大小。
    • @LuisMendo:是的,将编辑。然而,至少对我来说,渲染仍然不令人满意。
    • @CrisLuengo:那太好了。然而,OP 希望输出标记从中心移出尺寸增加
    猜你喜欢
    • 1970-01-01
    • 2016-04-28
    • 2020-11-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    相关资源
    最近更新 更多