next up previous contents index
suivant: Les deux hélices monter: Des étoiles à 5 précédent: Une étoile à 5   Table des matières   Index

Une étoile faite d'étoiles

On veut faire le dessin :

fltkcolor00 0 0


\begin{pspicture}(-5.0461,-4.4262)(6.9539,4.6170)
\psset{unit=1.9078cm}
\psset{x...
...( 0.809017, -0.587785)( 2.618034, 0.000000)( 0.809017, 0.587785)
\end{pspicture}

Si le rayon de l'étoile centrale est R et celui de l'étoile suivante est r on a la relation : r*sin(2*$ \pi$/5) = R*sin($ \pi$/5)
et on a trouvé que les sommets en "creux" sont situés sur un cercle de rayon : l = R*(3 - $ \sqrt{5}$)/2
On sait que :
sin(2*$ \pi$/5)2 = 1 - cos(2*$ \pi$/5)2 = (5 + $ \sqrt{5}$)/8
sin($ \pi$/5)2 = 1 - cos($ \pi$/5)2 = (5 - $ \sqrt{5}$)/8
donc (5 + $ \sqrt{5}$)*r2 = R2*(5 - $ \sqrt{5}$) = 20/(5 + $ \sqrt{5}$) soit
r = 2*R*$ \sqrt{5}$/(5 + $ \sqrt{5}$) = 2*R/(1 + $ \sqrt{5}$) = R*($ \sqrt{5}$ - 1)/2
De plus le centre de l'étoile suivante est situé à :
l + r = R*(3 - $ \sqrt{5}$)/2 + R*(- 1 + $ \sqrt{5}$)/2 = R.
On tape :

etoiles(z0,r,a):={
  local j,k,R,L,nr,nz0;
  L:=[etoile(z0,r,a)];
  R:=r;
  for (j:=0;j<5;j++){
    nr:=2*R/(1+sqrt(5));
    nz0:=z0+R*exp(2*i*j*pi/5+i*a);
    for (k:=1;k<5;k++){
      L:=append(L,etoile(evalf(nz0),nr,a));
      r:=nr;
      nr:=2*r/(1+sqrt(5));
      nz0:=nz0+r*exp(2*i*j*pi/5+i*a);
    }
  }
  return L;
}:;
On tape :
etoiles(0,1,0);
affichage(etoil(0,2/(3-sqrt(5)),pi/5),line_width_3)
On obtient le dessin voulu.
On tape :
etoiles(0,1,pi/4);
affichage(etoil(0,2/(3-sqrt(5)),pi/5+pi/4),line_width_3)
On obtient le même dessin tourné de $ \pi$/4.

Si on veut faire la même chose avec une ètoile à 7 branches on tape:

etoil7(z0,r,a):={
  local j,l,somet,p,L,pa;
  z0:=evalf(z0);
  r:=evalf(r);
  a:=evalf(a);
  //l:=evalf(r*(3-sqrt(5))/2);
l:=evalf(r*cos(2*pi/7)/cos(pi/7));
  somet:=[z0+l*exp(i*a),z0+r*exp(i*(a+evalf(pi)/7))];
  L:=somet;
  for (j:=1;j<7;j++){
    L:=concat(L,rotation(z0,2*j*evalf(pi)/7,somet));
  }
  p:=polygone(L);
  return p;
}:;

etoile7(z0,r,a):={
  return affichage(etoil7(z0,r,a),rempli);
}:;

etoiles7(z0,r,a):={
  local j,k,R,L,nr,nz0,nl,l;
  L:=[etoile7(z0,r,a)];
  R:=r;
  l:=evalf(R*cos(2*pi/7)/cos(pi/7));
for (j:=0;j<7;j++){
    nr:=evalf(R*sin(pi/7)/sin(2*pi/7));
    nz0:=z0+(l+nr)*exp(2*i*j*pi/7+i*a);
    for (k:=1;k<7;k++){
      L:=append(L,etoile7(evalf(nz0),nr,a));
      r:=nr;
      nr:=r*sin(pi/7)/sin(2*pi/7);
nl:=evalf(r*cos(2*pi/7)/cos(pi/7));
      nz0:=nz0+(nl+nr)*exp(2*i*j*pi/7+i*a);
    }
  }
  return L;
}:;
Le logo de Xcas est obtenu avec : On tape :
etoilo(z0,r,a):={
  local j,l,somet,p,L,pa;
  z0:=evalf(z0);
  r:=evalf(r);
  a:=evalf(a);
  l:=evalf(r*(3-sqrt(7))/2);
  somet:=[z0+l*exp(i*a),z0+r*exp(i*(a+evalf(pi/7)))];
  L:=somet;
  for (j:=1;j<7;j++){
    L:=concat(L,rotation(z0,2*j*evalf(pi/7),somet));
  }
  p:=polygone(L);
  return p;
}:;

etoilog(z0,r,a):={
  return affichage(etoilo(z0,r,a),rempli);
}:;
logox(z0,r,a,c):={
  local j,k,R,L,nr,nz0;
  L:=[affichage(etoilo(z0,r,a),c+rempli)];
  R:=r;
  for (j:=0;j<7;j++){
    nr:=2*R/(1+sqrt(7));
    nz0:=z0+R*exp(2*i*j*pi/7+i*a);
    for (k:=1;k<7;k++){
      L:=append(L,affichage(etoilo(evalf(nz0),nr,a),
                            c+(j+1)*k+rempli));
      r:=nr;
      nr:=2*r/(1+sqrt(7));
      nz0:=nz0+r*exp(2*i*j*pi/7+i*a);
    }
  }
  return L;
}:;
 lx(z0,r):={ 
  return(segment(z0+r*(-1-i),z0+r*(1+i)),
         segment(z0+r*(1-i),z0+r*(-1+i)));  
}:;
lc(z0,r):={ 
  return (cercle(z0,r,pi/4,7*pi/4));  
}:;
la(z0,r):={ 
  return(segment(z0+r*(-1-i),z0+r*i),
         segment(z0+r*(1-i),z0+r*i),
         segment(z0+r*-0.5,z0+r*0.5));
}:;
ls(z0,r):={ 
  return (segment(z0+r*(-1/2-i),z0-r*i),
          segment(z0+r*(1/2+i),z0+r*i),
          cercle(z0+r*i/2,r/2,pi/2,3*pi/2),
          cercle(z0-r*i/2,r/2,-pi/2,pi/2));  
}:;
logoxcas(z0,r,a,c):={
return logox(z0,r,a,c),
affichage(lx(evalf(z0-2*r*exp(i*a),r*0.2)),
           line_width_3+c+4),
affichage(lc(evalf(z0-2*r*exp(-2*i*pi/7+i*a),0.2*r)),
             line_width_3+c+3),
affichage(la(evalf(z0-2*r*exp(-4*i*pi/7+i*a),0.2*r)),
             line_width_3+c+2),
affichage(ls(evalf(z0-2*r*exp(-6*i*pi/7+i*a),0.2*r)),
             line_width_3+c+1);
};
On tape :
logoxcas(0,1,0,264);
On obtient les 7 branches de Xcas :
next up previous contents index
suivant: Les deux hélices monter: Des étoiles à 5 précédent: Une étoile à 5   Table des matières   Index
Documentation de giac écrite par Renée De Graeve