Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1355 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [VC++] tRacer une ligne bicolore

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VC++] tRacer une ligne bicolore

n°568816
Yoyo@
Posté le 17-11-2003 à 12:03:33  profilanswer
 

Salut,
 
Je me demandais comment je pourrais faire pour tracer une ligne bicolore...
 
Par exemple, pour tracer une ligne monocolore du Pt (0,0) au point (97, 122), je ferai :
 

Code :
  1. pDC->MoveTo(0,0);
  2. pDC->LineTo(97,122);


 
Tout en sélectionnant la bonne couleur dans mon CPen.
Mais mainteannt, imaginons que je veuilles tracer un tiers de la ligne avec une couelur et un autre tiers avec une deuxieme couleur, comment pourrais je faire?
 
J'ai pas envie que ma ligne ait une cassure car 97/3 et 122/3 ne sont pas entiers (par exemple en tracant la ligne de l'origine à un premier point avec la premeire couleur, puis de ce point intermédiaire au point d'arrivée de la 2eme couleur, le pt intermédiatre ayant des coordonnées entieres, donc les trois points n'étant pas exactement alignés)

mood
Publicité
Posté le 17-11-2003 à 12:03:33  profilanswer
 

n°568819
chrisbk
-
Posté le 17-11-2003 à 12:05:16  profilanswer
 

Citation :

J'ai pas envie que ma ligne ait une cassure car 97/3 et 122/3 ne sont pas entiers (par exemple en tracant la ligne de l'origine à un premier point avec la premeire couleur, puis de ce point intermédiaire au point d'arrivée de la 2eme couleur, le pt intermédiatre ayant des coordonnées entieres, donc les trois points n'étant pas exactement alignés)


 
c'est un bien joli raisonnement mais tu oublie que de toute facon, meme en tracant une seule et meme ligne, tes points se seront pas alignés (vu de toute facon tu te tape une conversion en entier pour l'affichage)
Coupe la en tranche ta ligne, personne y verra rien

n°568832
Yoyo@
Posté le 17-11-2003 à 12:10:04  profilanswer
 

D'accord, très bien, merci pour ta réponse aussi rapide (et aussi censée)! JE vais donc "couper" ma ligne enutilisant des coordonnées entières.
 
Dernière question :  
 
Je veux tracer des lignes entre deux cercles, mais je veux que ces lignes soient fléchées. Existe t il des facilités pour faire ca, ou alors vais je devoir tracer ces morceaux de fleche à la main, en utilisant les positions relatives des cercles, etc (pour calculer l'orientation des branches de la fleche?)

n°568837
chrisbk
-
Posté le 17-11-2003 à 12:12:32  profilanswer
 

eurf, en win32api je dirais a vu de nez qu'il faut que tu te tapes ca a la main, je ne me rapelle pas avoir vu de fonction pour faire ca (par contre en Winform oui)

n°568844
Yoyo@
Posté le 17-11-2003 à 12:16:21  profilanswer
 

En WinForm? C'est quoi?
(Bon, ca me déplait psa de faire ça à la main si j'ai pas le choix, mais ca va demander foule de calculs)

n°568848
chrisbk
-
Posté le 17-11-2003 à 12:19:25  profilanswer
 

le dernier truc a crosoft (.net)
 
Foule de calcul non, tu peux faire ca simplement :
-> calculer le vecteur directeur de ta droite (V), avec norme(V) = 1
-> calculer le vecteur orthogonal a V (N. N.x = V.y, N.y = -V.x)
-> te mettre a P = PF - V * E (PF = Point final, E = taille de ta fleche)
-> faire une ligne de P + V*E a PF
-> faire une ligne de P - V*E a PF


Message édité par chrisbk le 17-11-2003 à 12:20:12
n°568859
Yoyo@
Posté le 17-11-2003 à 12:24:57  profilanswer
 

Pour les étapes 4 et 5, je dirais :
 
-> faire une ligne de P + N*E a PF
-> faire une ligne de P - N*E a PF
 
Mais oui, c'est pas mal comme méthode (mais y a qd meme du calcul dans l'air)
 
Merci beaucoup!
 
Et h'hésite pas à me dire ce qu'est Winform, et surtout si ca vaut le coup de "migrer"

n°568862
chrisbk
-
Posté le 17-11-2003 à 12:27:31  profilanswer
 

ouais evidemment que c N, j'ai merdé :D (la je le calcul pour du vent)
 
Niveau calcul t'en fais donc pas, ca fera rigoler n'importe quel CPU un peu moderne (genre PII)
 
WinForm ben c'est la nouvelle tactique pour faire des interfaces. tu y accedes via tout ce qui est .NET (c# / managed C++...)
 
Si tu peux te le permettre, jete un oeil sur c#, pour la creation d'interface ca roxorise  
 

n°568876
Yoyo@
Posté le 17-11-2003 à 12:35:58  profilanswer
 

D'accord, c'est noté!
 
je dispose de VS6, donc, le C#, je ne pense pas que j'ai ça en stock! (peut etre dans VS .NET?), mais je prends le conseil au cas où à l'avenir, j'ai l'occasion de m'y mettre!
 
Merci bien :hello:
 

n°568878
chrisbk
-
Posté le 17-11-2003 à 12:36:22  profilanswer
 

vs .net ouais.....

mood
Publicité
Posté le 17-11-2003 à 12:36:22  profilanswer
 

n°568915
HelloWorld
Salut tout le monde!
Posté le 17-11-2003 à 13:35:21  profilanswer
 

En Win32 comme en .NET, avec GDI+


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [VC++] tRacer une ligne bicolore

 

Sujets relatifs
[CSS] Positionner 2 images sur la meme lignejavascript avec formulaire php pour saut de ligne/liens
[html] Aligner du texte à gauche et à droite sur une même ligne[resol][SGBD]acceder au demon mysql de easyphp en ligne de commande?
Lire une ligne entière dans un fichierasp : ligne de commande (winzip)
[Python@Blender] Ligne de commande pour executer un script python ?[debutant] [Allegro] ligne blanche [Resolut --> Bouble Buffering]
[C++]Insérer une ligne dans un fichierbig problème de retour à la ligne
Plus de sujets relatifs à : [VC++] tRacer une ligne bicolore


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR