Bonjour,

Dans le cadre d'un projet j'ai besoin de dessiner un ensemble de figures, chaque figure étant composée de segments reliés par des arcs.

Pour se faire j'ai créé un PathGeometry sur le modèle suivant:
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
                                    <Path Stroke="DimGray" StrokeThickness="3" Name="TubeGuide1" Visibility="Collapsed" >
                                        <Path.Data>
                                            <PathGeometry>
                                                <PathGeometry.Figures>
                                                    <PathFigure x:Name="TG1SousSFPStartPoint" StartPoint="0,0" >
                                                        <PathFigure.Segments>
                                                            <LineSegment x:Name="TG1SousSFPPoint" Point="0,0"/>
                                                        </PathFigure.Segments>
                                                    </PathFigure>
                                                    <PathFigure x:Name="TG1CourbeSFPStartPoint" StartPoint="0,0">
                                                        <PathFigure.Segments>
                                                            <BezierSegment x:Name="TG1CourbeSFPBezier" Point1="0,0" Point2="0,0" Point3="0,0"/>
                                                        </PathFigure.Segments>
                                                    </PathFigure>
                                                    <PathFigure x:Name="TG1SousSFAStartPoint" StartPoint="0,0">
                                                        <PathFigure.Segments>
                                                            <LineSegment x:Name="TG1SousSFAPoint" Point="0,0"/>
                                                        </PathFigure.Segments>
                                                    </PathFigure>
                                                    <PathFigure x:Name="TG1CourbeSFAStartPoint" StartPoint="0,0">
                                                        <PathFigure.Segments>
                                                            <BezierSegment x:Name="TG1CourbeSFABezier" Point1="0,0" Point2="0,0" Point3="0,0"/>
                                                        </PathFigure.Segments>
                                                    </PathFigure>
                                                    <PathFigure x:Name="TG1SousGrilleStartPoint" StartPoint="0,0">
                                                        <PathFigure.Segments>
                                                            <LineSegment x:Name="TG1SousGrillePoint" Point="0,0"/>
                                                        </PathFigure.Segments>
                                                    </PathFigure>
                                                    <PathFigure x:Name="TG1CourbeGrilleStartPoint" StartPoint="0,0">
                                                        <PathFigure.Segments>
                                                            <BezierSegment x:Name="TG1CourbeGrilleBezier" Point1="0,0" Point2="0,0" Point3="0,0"/>
                                                        </PathFigure.Segments>
                                                    </PathFigure>
                                                    <PathFigure x:Name="TG1FinStartPoint" StartPoint="0,0">
                                                        <PathFigure.Segments>
                                                            <LineSegment x:Name="TG1FinPoint" Point="0,0"/>
                                                        </PathFigure.Segments>
                                                    </PathFigure>
                                                </PathGeometry.Figures>
                                            </PathGeometry>
                                        </Path.Data>
                                    </Path>
Les coordonnées des points sont affectées par le code.

Ca fonctionne mais cela ne m'a pas l'air très optimisé car je n'utilise pas la fin d'un segment comme le début de la courbe de bezier associée (je duplique la coordonée dans le code) et la fin de la courbe de bezier comme début du segment suivant...

Est-ce que quelqu'un pourrait me donner un petit coup de main pour que j'ai un truc du genre:
- un StartPoint
- un segment qui va de ce StartPoint au StartPoint de la 1ere courbe de bezier
- une première courbe de bezier
- un segment qui relie le dernier point de la 1ere courbe de bezier et qui va au StartPoint de la 2nde courbe de bezier
...
- un segment qui va du dernier point de la dernière courbe de bezier au dernier point de ma figure.

Merci d'avance.