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 : 3660
Catégorie(s) : Maths, Trucs & Astuces, Graphique
Langages dispo pour ce code :
- Delphi 5
- Voir tous les langages pour ce code snippet



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

{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...

{Delphi} UNITE GRAPHIQUE IMOD, AVEC EXEMPLE
Bonjour, Voici une unité graphique, reprenant la plupart des opérations et des manipulations sur ...

{Javascript / DHTML} DYNAMIQUE.JS POUR FAIRE DE JOLIE ANIMATION ))
Librairie d'animation compatible prototype, basé sur une structure JSON. Plein d'interpolation, une...

{Flash} NUIT ETOILÉE EN 3D
80 petites étoiles s'affichent sur l'écran en fonction de leur position théorique (x - y -z) et de l...

{C / C++ / C++.NET} CXIMAGE LIB
lib example load les fichier format BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG...

{PHP} STATISTIQUE GRAPHIQUE (COMPOSANT ARTICHOW)
Une librairie très intéressante pour les statistiques: http://www.artichow.org Mais je n'ai rien tr...

{Python} GRAPHEUR DE FONCTIONS MATHÉMATIQUES
Permet de tracer un nombre illimité de fonctions mathématiques différentes ainsi que leurs dérivées ...

{C# / C#.NET} COMPTEURS DE PERFORMANCES (CONSOMMATION MÉMOIRE, UC, RESSOURCE. SUIVI PROCESSUS...ETC)
Cet outil permet de récupérer tous les types de compteurs de performances disponibles dans Windows e...