Dessiner une ligne avec une flèche

Soyez le premier à donner votre avis sur cette source.

Vue 13 778 fois - Téléchargée 1 063 fois


Description

Le but de ce prog est de vous permettre de tracer une ligne avec une flèche au bout, ça peut être utilie si vous représentez des vecteurs par exemple.
Si vous voulez réutiliser ce code, informez-m'en c'est tout

Conclusion :


les commentaires sont les bienvenus (constructifs si possible)
signalez-moi les bugs si vous en trouvez merci.
@+ KtB

P.S : merci Nix d'avoir mis la source manuellement

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
7 juin 2007

salut ffert, votre code Delphi ci-haut m'a beaucoup aidé.
Je ne peux pas avoir de votre part un autre code Delphi qui trace un rectangle rempli des lignes droites horizontales ?

Merci
Baron
Messages postés
63
Date d'inscription
samedi 18 janvier 2003
Statut
Membre
Dernière intervention
15 décembre 2009

Bonjour,

Je pense qu'il y a plus simple pour tracer une flèche..... et ça utiliser aussi les cours de trigo :
il faut : trouver l'angle de la droite, et faire un léger décalage (avant et arrière)...

voilà la source en Delphi : trés facilement compréhensible et adaptable en VB
j'ai fait ça sur des évenement souris.

procedure TForm1.FormMouseDown(Sender: TObject; Button: MouseButton; Shift: TShiftState; X, Y: Integer);
begin
// mémoriser le premier point
x1 := X;
y1 := Y;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
aX : double; // arc X : cosinus
aY : double; // arc Y : Sinus
begin
X2 := X;
Y2 := Y;
// Pythagore : trouver le rayon
r := Sqrt(sqr(X2 - X1) + sqr(Y2 - Y1));
if r > 0 then
begin
// trouver l'angle de la droite tracée à la souris
ax := arccos((X1 - X2) / r);
ay := arcsin((Y1 - Y2) / r);
end
else
begin
// éviter les erreur de division par zéro
ax := -1;
ay := -1;
end;
// tracer la ligne pointée avec la souris
Form1.Canvas.MoveTo(X1, Y1);
Form1.Canvas.LineTo(X2, Y2);
// tracer la flèche
Form1.Canvas.LineTo(trunc(X2 + cos(ax + 0.2) * 20), trunc(Y2 + sin(ay + 0.2) * 20));
Form1.Canvas.LineTo(trunc(X2 + cos(ax - 0.2) * 20), trunc(Y2 + sin(ay - 0.2) * 20));
Form1.Canvas.LineTo(X2, Y2);
end;


Pour arriver apparement au même résultat.
0.2 c'est l'écartement de la flèche
20 c'est la taille de la flèche.
Messages postés
24
Date d'inscription
mercredi 5 septembre 2001
Statut
Membre
Dernière intervention
7 août 2003

Merci pour cette source, j'ai ramé pendant un jour pour arriver à tracer une flèche, et j'étais loin du compte ;-)
Messages postés
80
Date d'inscription
mercredi 13 mars 2002
Statut
Membre
Dernière intervention
8 novembre 2006
1
Merci ;)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Je ne peux mettre qu'une bonne note !
Bien joué, Ktb : Enfin quelqu'un qui va au bout de ses idées et qui sait ce que refléchir veut dire !
Cool
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.