Salut
Est il possible de ne pas afficher les intersections des cercle lors de l affichage de cercles lorsque les cerlces se chevauchent (DrawCircle / DrawEllipse / ...) ?
thx
Salut
Est il possible de ne pas afficher les intersections des cercle lors de l affichage de cercles lorsque les cerlces se chevauchent (DrawCircle / DrawEllipse / ...) ?
thx
C'est quoi pour toi l'intersection de 2 cercles ?
2 points ?
Si tu parles de "secteur", alors les regions peuvent repondre à ce problème
beh, t'as une classe qui s'appelle region
Regardes cette classe, regarde les méthodes d'ajout , d'union, d'intersection, et dis moi si tu y trouves ton bonheur
Cela dit, tu voudrais quoi exactement ?
Que l'intersection de deux cercles t'en donne : L'union ? l'exclusion ?
T'as question n'est pas assez précise
A la limite, un petit screenshot, et je te dirais si ya moyen de faire quelque chose facilement (mais demain matin maintenant, car papy va faire des sudokus et se coucher )
Ok merci
je vais regarder
j aimerais, en fait, avoir qqchose comme cela :
tu peux dire merci à la champion's league
Allez, je te file ce bout de code qui devrait t'aider quelque peu
Example
Tu crées une forme, tu mets un bouton dessus et sur le click bouton, tu balances ce code là
Sans oublier les using qui conviennent
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 private void button1_Click(object sender, EventArgs e) { Graphics g = this.CreateGraphics(); GraphicsPath circle1 = new GraphicsPath(); circle1.AddEllipse(new Rectangle(0, 0, 100, 100)); GraphicsPath circle2 = new GraphicsPath(); circle2.AddEllipse(new Rectangle(50, 0, 100, 100)); Region r1 = new Region(circle1); r1.Union(circle2); g.FillRegion(new SolidBrush(Color.Red), r1); }
Et voilà
Résolu ?
Merci cela marche .
Mais comment afficher seulement le contour des cercles ?
une astuce
Tu fais ceci
En fait, je dessine le path avec un "gros" trait" et ensuite j'en remplis l'intérieur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Graphics g = this.CreateGraphics(); GraphicsPath circle1 = new GraphicsPath(); circle1.AddEllipse(new Rectangle(0, 0, 100, 100)); circle1.AddEllipse(new Rectangle(50, 0, 100, 100)); circle1.FillMode = FillMode.Winding; g.DrawPath(new Pen(Color.Red, 4), circle1); g.FillPath(new SolidBrush(Color.Blue), circle1);
De ce fait, si je ne faisais pas le FillPath, j'aurais mes deux cercles d'afficher
voila
(evidemment, j'ai mis du bleu mais suffit de mettre la couleur du fond pour que cela semble plus "fondu" dans son environnement
Arg..j ai l impression que ce que je veux faire n est pas possible ...
avec le contour des cercles sans avoir le contour au niveau de l intersection.
beh, tu peux toujours générer une image et ensuite, l'analyser pour n'en prendre que les contours
Enfin, c pas "si" compliqué que cela mais bon... c'est un peu "long" pour un besoin qui n'est peut-etre pas si vitale
Mon astuce ne te convient pas ? (colorier l'intérieur dans une couleur de telle sorte que cela disparaissent ?
Sinon, tu pourrais déterminer les points d'intersections de tes 2 cercles et ne faire que des Arcs à partir de ces points .. Ca serait une autre alternative à ton problème !
Merci ..je pense utiliser ta solution.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager