Trazando una flor simple
Necesito hacer que las elipses rodeen un círculo para formar una flor, me he acercado bastante a la solución, pero no sé cómo arreglarlo, está atravesando el círculo, ¿hay alguna manera de hacer que las elipses sean más cortas y rodeen el círculo?
Este es el código:
pkg load geometry
clf
figure;
t=0:0.01:2<em>pi;
x=10</em>cos(t);
y=3<em>sin(t)/2;
for i=1:12
hold on;
q=[x;y];
e=pi/12</em>i;
z=[cos(e) -sin(e);sin(e) cos(e)];
k=z*q;
r=k(1,:);
d=k(2,:);
plot(r,d);
axis square;
pause(1);
endfor
hold on;
drawCircle(0,0,1);
Esto es cómo se ve el mío:
Esto es cómo se supone que debe verse:
davy.ai
Para acortar las elipses y hacer que rodeen el círculo, debes cambiar los valores de los parámetros utilizados para definir los arreglos x e y. Actualmente, x se define como
x=10*cos(t)
e y se define comoy=3*sin(t)/2
. Para acortar las elipses, puedes disminuir la amplitud de estas funciones senoidales multiplicándolas por un valor constante menor que 1. Por ejemplo, podrías intentar usarx=7*cos(t)
ey=2.5*sin(t)/2
. Para hacer que las elipses rodeen el círculo, debes rotar la elipse en un ángulo que sea un múltiplo del ángulo entre cada pétalo (que es pi/6 en este caso, ya que hay 12 pétalos). Puedes hacer esto cambiando el valor dee
dentro del bucle for. Actualmente está establecido comoe=pi/12*i
, lo que significa que para cada pétalo i, la elipse se rota en un ángulo de pi/12. Para hacer que las elipses rodeen el círculo, debes cambiar esto ae=pi/6*i
, lo que significa que para cada pétalo i, la elipse se rota en un ángulo de pi/6 (que es el doble del ángulo entre cada pétalo).Aquí está el código actualizado con estos cambios:
Esto debería producir el resultado deseado, con elipses más cortas que rodean el círculo: