IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

[Graphisme] Comment dessiner une ellipse sur un plan x,y ?


Sujet :

Langage Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut [Graphisme] Comment dessiner une ellipse sur un plan x,y ?
    Bonjour,
    L’énoncé parait simple mais le problème posé concerne une ellipse dont le grand axe est incliné.
    On connaît :
    Ex,Ey le centre de l’ellipse
    Ax,Bx les extrémités du grand axe
    Cx,Dx les extrémités du petit axe
    Comment dessiner l'ellipse sur le plan x,y ?
    Un exemple de code source Delphi serait du meilleur goût
    Merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Bonjour,

    Si c'est pour dessinez l'ellipse dans un canvas (TBitmap out TImage.Bitmap par exemple) vous pouvez utiliser directement l'ordre ellipse.

    Le parametre a passer est le rectangle dans lequelle l'ellipse est tracer, donc pas de problème de calcule en deisposant du centre et des 2 axes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    procedure TraceEllipse(Canvas: TCanvas; Center: TPoint; Ray1, Ray2: Integer);
    var
      ARect: TRect;
    begin
      // Calcule du rectangle contenant l'ellipse
      Rect.Left := Center.X - Ray1;
      Rect.Right := Center.X + Ray1;
      Rect.Top := Center.Y - Ray2;
      REct.Bottom := Center.y + Ray2;
     
      // Couleur style epasseur du bord de l'ellipse
      Canvas.Pen.color := ClBlack;
      Canvas.Pen.Style := PsSolid;
      Canvas.Pen.Width := 1;
      Canvas.Pen.Mode := PmCopy;
     
      // Tracer de l'ellipse
      Canvas.Ellipse(AREct);
    end;
    La rapidité est correct. Je pense que l'api windows est directement appelé.

    Extrait de l'aide Delphi 7 en français:

    Dessine dans le canevas l'ellipse inscrite dans un rectangle.

    Syntaxe Delphi :

    procedureEllipse(X1,Y1,X2,Y2:Integer);overload;
    procedureEllipse(constRect:TRect);overload;

    Syntaxe C++:

    void __ fastcallEllipse(intX1,intY1,intX2,intY2);
    void __ fastcallEllipse(TRectRect);

    Description

    Appelez Ellipse pour dessiner un cercle ou une ellipse dans le canevas.Spécifiez le rectangle de délimitation en donnant :

    Le point supérieur gauche de coordonnées en pixel (X1,Y1)et le coin inférieur droit par le point (X2,Y2).
    Une valeur TRect.

    Si les points du rectangle forment un carré,un cercle est dessiné.

    Le contour de l'ellipse est tracéen utilisant la valeur de Pen et rempli en utilisant celle de Brush.

    Remarque : Dans Windows 9x ou Windows ME,les sommes X1 +X2 et Y1 +Y2 ne peuvent dépasser 32768.La somme X1 +X2 +Y1 +Y2 ne peut donc également dépasser 32768.

  3. #3
    Fxg
    Fxg est déconnecté
    Membre éclairé
    Homme Profil pro
    ingénieur financier
    Inscrit en
    Septembre 2003
    Messages
    510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur financier

    Informations forums :
    Inscription : Septembre 2003
    Messages : 510
    Points : 837
    Points
    837
    Par défaut
    Bonjour,

    Tu trouveras ton bonheur à cette adresse :
    http://www.efg2.com/Lab/Library/Delp...phics/Math.htm

    à la rubrique Ellipse, Rotated

    Je pense que cela correspond à ton besoin de dessiner une ellipse avec une rotation autour d'un axe.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut
    Merci
    Le source trouvé sur efg's me parait parfait
    Il s'agit en effet de tracer une ellipse qui a subi une rotation. Je n'ai pas encore tester le source mais je pense qu'il convient[/img]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/12/2004, 11h18
  2. comment Positionner une image sur une autre ?
    Par moumoule17 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 25/11/2004, 16h41
  3. [Info]Comment mettre une servlet sur le web?
    Par fred9510 dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 15/08/2004, 16h40
  4. Dessiner une image en arrière plan d'1 MDI Main Frame
    Par Yacine95000 dans le forum MFC
    Réponses: 3
    Dernier message: 14/06/2004, 10h22
  5. [icone]Comment appliquer une icone sur le.exe
    Par JavaLeDirePartout dans le forum JBuilder
    Réponses: 7
    Dernier message: 24/07/2003, 17h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo