If I want to draw a something with circular symmetry, e.g joining pair of points by arcs as shown in the picture with only two, I face the problem of not being able to use the edge bending. This is because it implies the choice of bend left
(or right, or...) which breaks the symmetry.
I want to bend my edges to the center of the circle, but the arcs bend too much towards the center (arc in blue). I can correct, e.g. by adding a coordinate (arc in red). Isn't there an option to tell controls ..
not to bend that much?
At the bottom there is another picture which shows what I don't want (and happens if I use bend left
). I want in all arcs to be pulled to the center. I cannot fix by reordering a big list manually in finite time.
\documentclass{standalone}
\usepackage{tikz}
\usepackage{ifthen}
\usepackage{pgfplots}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[scale=1]
\coordinate (O) at (0,0);
\draw (O) circle (4);
%
\foreach \i in {1,2,...,8} {
\node[draw,fill=white,circle] (p\i) at ($(O)+(360*\i/8:4)$) {\i};
}
\draw [blue] (p1) .. controls (O) .. (p3);
\draw [red] (p1) .. controls ($(O)+.3*(p2)$) .. (p3);
\end{tikzpicture}
\end{document}
By using, say
\path [violet, bend left=30, looseness=1.3]
(p1) edge (p2)
(p3) edge (p4)
(p5) edge (p6)
% since I cannot order points, I'll have
% pairings like the next one:
(p8) edge (p7)
;
This is what I meant with breaking of symmetry: one of the edges bends the other side, and not towards the center. I cannot reorder data in order to invert the bending-side.
bend left
andlooseness
influence how TikZ creates the control points for you. If you choose the control points yourself, you bypass that logic. The path of the curve is then determined by a mathematical formula. In order for it to look different you have to pick different controls. However, you could make the calculation of the intermediate control point a bit easier by using thebarycentric cs
coordinate system. Then you don't need to know(p2)
.\draw [blue] (p1) arc[radius=4, start angle=-45, end angle=-135];