OVH Cloud OVH Cloud

Formes géométriques

9 réponses
Avatar
Steven
Bonjour,

Je dois dessiner une forme géométrique asser complexe, par exemple une
voiture.
Puis, je dois récupérer le clic de la souris de l'utilisateur pour savoir a
quel endroit il a cliqué sur la voiture.

En VB6, j'aurai utilisé le composant "Shapes" pour dessiner la voiture et
utilisé une formule mathématique pour tester si je suis ou non dans une
forme géométrique.

En C#, je ne vois aucun composant .net pour "dessiner" des formes
géométriques au design-time.
En existe-t'il un ?
Y a t'il une meilleure solution en C# ?

Merci !

9 réponses

Avatar
Ambassadeur Kosh
> Y a t'il une meilleure solution en C# ?



ouaih.
notament la class GraphicPath.
Avatar
Steven
Ok, merci.
Mais ça ne me dit pas comment je "dessine" la voiture.
A moins que tu sous-entendes que je dois programmer dans le code chaque
point et ses coordonnées ??!
Je peux pas croire qu'il n'y ait pas un moyen plus "graphique", genre
dessiner avec la souris !!

Merci !

"Ambassadeur Kosh" a écrit dans le message de
news: O0B%232oc%
Y a t'il une meilleure solution en C# ?



ouaih.
notament la class GraphicPath.



Avatar
Simon Mourier [SoftFluent]
Pour ce genre de choses (vectoriel), on peut utiliser les EMF (enhanced
metafile de Windows) qui sont rapides et assez puissants.

Il y a une classe dans le .NET Framework qui permet de les manipuler
(MetaFile), charger, afficher, modifier, sauvegader, etc...

Plusieurs outils sont capables de créer des .EMF, comme par exemple
Microsoft Visio, ou des outils de CAO classiques.

Simon.
www.softfluent.com


"Steven" a écrit dans le message de news:
uJlurre%
Ok, merci.
Mais ça ne me dit pas comment je "dessine" la voiture.
A moins que tu sous-entendes que je dois programmer dans le code chaque
point et ses coordonnées ??!
Je peux pas croire qu'il n'y ait pas un moyen plus "graphique", genre
dessiner avec la souris !!

Merci !

"Ambassadeur Kosh" a écrit dans le message de
news: O0B%232oc%
Y a t'il une meilleure solution en C# ?



ouaih.
notament la class GraphicPath.







Avatar
Steven
Ok, donc je crée ma forme graphique sous Visio, puis je l'importe via la
classe MetaFile en C#.
Ensuite, est-ce que je peux utiliser la classe GraphicPath pour savoir ou
l'utilisateur aura cliqué sur la forme ?

Le cas échéant, avez-vous un exemple d'utilisation des EMF et de la classe
MetaFile ?

Merci !
Avatar
Ambassadeur Kosh
> Ensuite, est-ce que je peux utiliser la classe GraphicPath pour savoir ou
l'utilisateur aura cliqué sur la forme ?



oui.
Avatar
Steven
J'ose à peine demander..."Comment ?" .....

J'ai sur l'évènement paint de ma form:
maMeta = new Metafile(@"d:Tempmaforme.emf");

e.Graphics.DrawImage(maMeta, 0, 0);

Ensuite, comment utiliser GraphicPath pour récupérer ou l'utilisateur à
cliqué ?
La documentation est très vague...

..... Merci !
Avatar
Ambassadeur Kosh
c'est la methode IsVisible.

j'ai demandé aussi pour la meme raison, et c'est Simon qui a répondu :o)
Avatar
Steven
Oui, j'ai bien noté que c'est la méthode IsVisible.
Ce que je ne sais pas, c'est comment relier le GraphicsPath à ma MetaFile,
puisqu'elle contient un fichier emf et que je ne construis pas la forme
géométrique "à la volée"...

Merci !


"Ambassadeur Kosh" a écrit dans le message de
news: emKCds$%
c'est la methode IsVisible.

j'ai demandé aussi pour la meme raison, et c'est Simon qui a répondu :o)



Avatar
Ambassadeur Kosh
il doit y avoir plus simple, mais je dirais à EnumerateMetafile