Les Snippets

Connexion

Dessine une Etoile de David à partir du centre et du rayon du cercle circonscrit

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 15/10/2007 00:10:58 et initié par Jean_Jean [Liste]
Vue : 6103
Catégorie(s) : Maths, Trucs & Astuces, Graphique
Langages dispo pour ce code :
- Delphi 5



Langage : Delphi 5
Date ajout : 15/10/2007
Posté par Jean_Jean [Liste]
{-- FCooPtStarDavid2d ----------------------------------------------------------
 Calcule les coordonnées des douze sommets d'une étoile de David en 2D à partir
 des coordonnées du Centre de gravité
 Entrées : CG(x,y)
            : R rayon du cercle qui circonsrit  l'étoile
 Sorties : S1(x1,y1)..S12(x12,y12)
-------------------------------------------------------------------------------}
Function FCooPtStarDavid2d (CG : Tpoint; R : LongInt) : T12Points;
 var  H : extended; // H hauteur du triangle equilatéral des étoiles internes
        a : Extended; // a = longueur d'une branche de l'étoile
begin
  H := R / 2;
  a := R / sqrt(3);
  Result[1].X := Round(CG.X + a);
  Result[1].Y := CG.Y;
  Result[2].X := Round(CG.X + 1.5 * a);
  Result[2].Y := Round(CG.Y + H);
  Result[3].X := Round(CG.X + a / 2);
  Result[3].Y := Result[2].Y;
  Result[4].X := CG.X;
  Result[4].Y := Round(CG.Y + R);
  Result[5].X := Round(CG.X - a / 2);
  Result[5].Y := Result[2].Y;
  Result[6].X := Round(CG.X - 1.5 * a);
  Result[6].Y := Result[2].Y;
  Result[7].X := Round(CG.X - a);
  Result[7].Y := CG.Y;
  Result[8].X := Result[6].X;
  Result[8].Y := Round(CG.Y - H);
  Result[9].X := Result[5].X;
  Result[9].Y := Result[8].Y;
  Result[10].X := CG.X;
  Result[10].Y := Round(CG.Y - R);
  Result[11].X := Result[3].X;
  Result[11].Y := Result[8].Y;
  Result[12].X := Result[2].X;
  Result[12].Y := Result[8].Y;
end;
Exemple :
{ ETOILE DE DAVID --------------------------------------------------------------
 Ox,Oy     : Centre de la figure
 R         : rayon du cercle circoncrit de l'étoile
 e         : épaisseur de la ligne entourant la figure
 aCanvas   : Canvas désigné sur laquelle la figure sera déssinée
 aColorExt : Couleur du trait extérieur
 aColorIt  : Couleur intérieure
 ------------------------------------------------------------------------------}
procedure Draw_StarDavid(Ox,Oy,R,e : Word;aAngle : Real; aCanvas : TCanvas;aColorExt,aColorInt: Tcolor);
 var  CooSomStar : T12Points; // coordonnées des 12 sommets
begin
  CooSomStar := FCooPtStarDavid2d (Point(Ox,Oy),R);
  With aCanvas do
  begin
    Brush.Color := aColorInt;
    Brush.Style := bsSolid;
    Pen.Color   := aColorExt;
    Pen.Style   := psSolid;
    Pen.Width   := e;
    Polygon([Point(CooSomStar[1].X, CooSomStar[1].Y),
             Point(CooSomStar[2].X, CooSomStar[2].Y),
             Point(CooSomStar[3].X, CooSomStar[3].Y),
             Point(CooSomStar[4].X, CooSomStar[4].Y),
             Point(CooSomStar[5].X, CooSomStar[5].Y),
             Point(CooSomStar[6].X, CooSomStar[6].Y),
             Point(CooSomStar[7].X, CooSomStar[7].Y),
             Point(CooSomStar[8].X, CooSomStar[8].Y),
             Point(CooSomStar[9].X, CooSomStar[9].Y),
             Point(CooSomStar[10].X, CooSomStar[10].Y),
             Point(CooSomStar[11].X, CooSomStar[11].Y),
             Point(CooSomStar[12].X, CooSomStar[12].Y)] );
  end;
end;

Remarque :
Type
  T12Points = array[1..12] of TPoint; // Type 12 Points

Snippets en rapport avec : Triangle, Etoile, Graphique, Polygon, Coordonnées



Codes sources en rapport avec : Triangle, Etoile, Graphique, Polygon, Coordonnées

{C / C++ / C++.NET} AFFICHAGE D'UN TRIANGLE ISOCELE
Affichez un triangle isocèle formé d'étoiles de N lignes (N est fourni au clavier).On devrait avoir ...

{JAVA / J2EE} TRIANGLE D'ÉTOILES
Le programme invite l'utilisateur à rentrer un nombre entier, correspondant aux nombre de lignes. Pl...

{JAVA / J2EE} POLYGONE RÉGULIER EN FORME D'ÉTOILE
Voici une petite fonction permettant de tracer un polygone régulier (juste régulier, ou en forme d'é...

{Visual Basic, VB6, VB.NET, VB 2005} ETOILE QUI ROULE N'AMMASE PAS MOUSSE...
Une petite étoile qui roule... Et quelques explications trees basiques sur le cercle trigonometriqu...

{Visual Basic, VB6, VB.NET, VB 2005} BITBLT ENTRE 2 PICTUREBOX EN VB NET
Cette source permet de transférer une partie d'une PictureBox dans une autre PictureBox. C'est pour ...

{C / C++ / C++.NET} CLASSE GRAPH: GESTION DES GRAPHIQUES DANS LES APPLICATIONS WIN32
Cette classe permet de gérer très facilement l'ajout de graphique dans vos applications. Elle utilis...

{Visual Basic, VB6, VB.NET, VB 2005} CAPTURE ECRAN SELECTIVE
Encore une capture me direz vous Barre outil toujours visible permettant la capture: De l'écran ...

{Visual Basic, VB6, VB.NET, VB 2005} TRI AVEC VISUALISATION
Voila une source pour trié des chiffres dans un tableau a 1 dimensions. Il y a plusieurs méthodes de...

{Javascript / DHTML} INSTALLEZ UN CURSEUR GÉANT, SUPER GÉANT CURSEUR DE LA SOURIS, GRAND SURSOR
Installer un curseur super géant sur vos pages, le curseur de la souris est très attirant et peut av...

{Flash} PARTICLE 1.0
Il s'agit d'un petit logiciel permettant de générer des effets de particules ( Oui je sais... encore...