使用 for 循环加宽斐波那契花
Widen a fibonacci flower using a for cycle
我想知道在这个例子中我曾经练习过循环,我需要更改此代码以更改看起来像这样的图像,一些基本的黄金角度图:
到这个例子
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 值但没有特别的结果,只是我改变了颜色但没有改变大小。我也试过将它们变成一个 for 循环,我认为它会创建像金色花瓣一样的圆圈,但不知道如何实现它。但是如何让它们在迭代过程中越来越小呢?我想花瓣的总数是2575。
for i = 1:10
%plot(x,y,'.',x(i),y(i),'.','MarkerSize',10*abs(y(i)),'MarkerFaceColor','g')
您可以使用 scatter
代替 plot
:scatter
允许将标记大小设置为参数:
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
数据在 table 上看起来不错,随着 theta
从 0 增加到 10。
然而,在我的 Matlab (R2013b) 上,渲染非常粗糙。
我想知道在这个例子中我曾经练习过循环,我需要更改此代码以更改看起来像这样的图像,一些基本的黄金角度图:
到这个例子
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 值但没有特别的结果,只是我改变了颜色但没有改变大小。我也试过将它们变成一个 for 循环,我认为它会创建像金色花瓣一样的圆圈,但不知道如何实现它。但是如何让它们在迭代过程中越来越小呢?我想花瓣的总数是2575。
for i = 1:10
%plot(x,y,'.',x(i),y(i),'.','MarkerSize',10*abs(y(i)),'MarkerFaceColor','g')
您可以使用 scatter
代替 plot
:scatter
允许将标记大小设置为参数:
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
数据在 table 上看起来不错,随着 theta
从 0 增加到 10。
然而,在我的 Matlab (R2013b) 上,渲染非常粗糙。