J'ai parcouru tous les éléments disponibles, mais je ne trouve pas de courbe ou d'arc à ajouter à mon diagramme. Est-ce qu'il y a quelque part?
Vous pouvez faire glisser un nouvel Edge en tant que courbe à partir de la bibliothèque de connexions
Vous pouvez également modifier une connexion existante en la sélectionnant et en choisissant une courbe dans la liste déroulante de la barre d’outils Style de contour.
Une approche plus manuelle pour obtenir des courbes dans draw.io consiste à éditer la forme d’un élément. Cela permet trois variations différentes des courbes, <arc ... />
, <quad ... />
ou <curve ... />
. L'image montre ces trois courbes, et plus bas, le code nécessaire pour produire ces éléments. L'image contient des instructions supplémentaires pour illustrer la génération de la courbe.
Nous sommes en mesure d’éditer le style et la forme des éléments dans draw.io. Tous les éléments n'ont cependant pas une forme à éditer. La plupart des éléments du menu Basic ont une forme à modifier.
La forme et le style peuvent être modifiés à partir du panneau de formatage Ctrl+Shift+P dans l'onglet Style , et là vous avez des boutons bien nommés Modifier le style , Modifier l'image et/ou Modifier la forme . Les boutons affichés dépendent de l'élément sélectionné.
Pour cette réponse, nous nous concentrons sur le bouton Modifier la forme , et pour l'afficher, nous commençons par ajouter un Basic > Étoile à notre dessin. Draw.io a de la documentation sur édition de formes avec un petit exemple , et une référence à la documentation SVG sur dessin d'arcs , qui était la base pour moi expérimenter jusqu'à ce que j'ai trouvé les exemples de code utilisés dans cette réponse.
Pour chacun des exemples ci-dessous, insérez un élément avec une forme, sélectionnez-le et cliquez sur le bouton Modifier la forme . Insérez ou modifiez le texte qu'il contient et cliquez sur Aperçu pour obtenir un aperçu ou sur Appliquer pour fermer la boîte de dialogue et voir votre résultat final. Le résultat final de ce code, avec quelques lignes directrices ajoutées, donne cette image:
arc
L'arc est basé sur deux ellipses qui traversent le point de base et le point spécifique. Comme ils forment en réalité quatre chemins différents de la base au point final, vous devez choisir lequel de ces chemins vous utilisez.
Voici un exemple de code pour un segment de camembert de 240 °:
<shape aspect="variable" h="2.0" w="2.0" name="Angle" strokewidth="inherit">
<connections/>
<background>
<path>
<move x="2.0" y="1.0"/>
<arc x="0.5" y="1.866" rx="1.0" ry="1.0" large-arc-flag="1" sweep-flag="0" x-axis-rotation="0"/>
<line x="1.0" y="1.0"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
</foreground>
</shape>
Voici les détails expliquant pourquoi ce code dessine une segmentation de 240 degrés:
shape
, background
et/ou foreground
. Quand j'ai choisi d'utiliser background
c'est parce que cela me permet d'ajouter très facilement des ombres à la forme. J'ai créé un carré de hauteur et de largeur égale à 2,0 dans la toile de base de la forme afin de permettre l'inclusion d'un cercle complet dans la formepath
<move x="2.0" y="1.0">
arc
allant du point précédent du chemin jusqu'à un point final (x, y)
, avec les rayons des ellipses (rx
et ry
) où sweep-flag
et large-arc-flag
sélectionne la partie d'ellipse correcte et indique si ces ellipses sont pivotées (x-axis-rotation
). Pour obtenir un degré 240, nous avons besoin de ce qui suit: (cos(240°), sin(240°) = (-0.5, -0.866)
qui se traduit dans notre forme doit être (1+x, 1-y)
ce qui donne x="0.5" y="1.866"
large-arc-flag="1"
sweep-flag="0"
line
au centre, coordonnées 1.0, 1.0
, puis close
le chemin.fillstroke
dans la section foreground
Notez que si vous ne voulez que le segment d'arc, vous pouvez supprimer les balises line
et close
, et remplacer la fillstroke
par un simple stroke
. Faites des essais en changeant le sweep-flag
et le large-arc-flag
, ainsi que les autres tags Dans mon exemple, j'ai utilisé rx=ry=1
qui transforme les ellipses en cercles, mais expérimente avec des modifications du rayon, du balayage ou de l'arc en grand arc, et voit ce qui se passe.
Quelques autres coordonnées pour obtenir des angles standard sont les suivantes:
(0.707, 0.707)
qui donne x="1.707" y="0.293"
(0.5, 0.866)
qui donne x="1.5" y="0.134"
(-0.707, -0.707)
qui donne x="0.293" y="1.707"
(cos(n)
, sin (n) `` qui donne x="1+cos(n)" y="1-sin(n)"
0.707
(& 0.293
), 0.5
, 0.866
(& 0.134
), qui se reproduisent régulièrement par rapport aux 30 °, 45 ° & 60 ° et n*90°
angles autour du cercle ...Notez l'utilisation de move
pour spécifier le point de base, puis le chaînage en chaîne de arc
et line
(et vous auriez pu utiliser quad
et curve
) produire un chemin plus long.
quad
Une courbe quad
est une courbe quadratique, qui correspond à la courbe que vous obtenez lorsque vous commencez par une ligne allant du point de base au point de contrôle et que vous faites demi-tour jusqu'à ce que la ligne corresponde au point final.
Voici un exemple:
<shape aspect="variable" h="1" w="1" name="Quad" strokewidth="inherit">
<connections />
<background>
<path>
<move x="0" y="0"/>
<quad x1="0.25" y1="1" x2="1" y2="1"/>
</path>
</background>
<foreground>
<stroke/>
</foreground>
</shape>
Explication de la courbe quad
:
<move x="0" y="0" />
quad
, x1="0.25" y1="1"
x2="1" y2="1"
Ce type de courbe peut être utile lorsque vous souhaitez contrôler l'angle des segments de ligne de début et de fin de la courbe. Autrement dit, si vous voulez créer plusieurs segments de courbe et que vous voulez qu’ils aient des jonctions de Nice.
curve
La forme finale curve
utilise deux points de contrôle qui fonctionnent comme des tractions gravitationnelles sur la ligne jusqu’au point final. Voici le code:
<shape aspect="variable" h="1" w="1" name="curve" strokewidth="inherit">
<connections />
<background>
<path>
<move x="0" y="0"/>
<curve x1="0.1" y1="0.4" x2="0.9" y2="0.3" x3="1" y3="1"/>
</path>
</background>
<foreground>
<stroke/>
</foreground>
</shape>
<move x="0" y="0" />
curve
, x1="0.1" y1="0.4" x2="0.9" y2="0.3"
x3="1" y3="1"
Notez que j'ai utilisé le coin supérieur gauche comme point de départ et le coin inférieur droit comme point final à la fois pour le quad
et le curve
, vous pouvez bien sûr le modifier si vous souhaitez une autre direction générale de la courbe. .
Pour tracer des arcs, faites glisser la courbe bidirectionnelle du panneau Divers vers la zone de dessin, puis cliquez sur la courbe pour afficher les points "de couleur bleue" appelés "points de passage". Vous pouvez supprimer ces points de cheminement pour modifier sa structure. Faites un clic droit et sélectionnez Supprimer le point de cheminement. Supprimez les points de cheminement inutiles jusqu'à ce que vous ayez seulement 3 points de cheminement, 2 aux bords et un autre entre les deux. En faisant glisser le point de cheminement situé entre les 2 points de cheminement, vous pouvez obtenir une courbe de courbures différentes.