# How to draw the following Mongolian calligraphy?

I want to draw a work of Mongolian calligraphy below.

There are some problems when I scaled it as follows.

Here is my attempt with TikZ.

\begin{tikzpicture}[xscale=0.5,yscale=0.5]
\draw[fill,black] (0,0) circle (1cm);
\draw [white,thick,line width=0.7mm,domain=266:94] plot ({0+(0.9*cos(\x))},
{0+(0.9*sin(\x))});
\draw [white,thick,line width=0.7mm,domain=4:90] plot ({0+(0.9*cos(\x))},
{0+(0.9*sin(\x))});
\draw [white,thick,line width=0.7mm,domain=270:352] plot ({0+(0.9*cos(\x))},         {0+(0.9*sin(\x))});
\draw [white,thick,line width=0.7mm,domain=94:176] plot ({0+(0.75*cos(\x))},         {0+(0.75*sin(\x))});
\draw [white,thick,line width=0.7mm,domain=188:266] plot (
{0+(0.75*cos(\x))}, {0+(0.75*sin(\x))});
\draw [white,thick,line width=0.7mm,domain=82:-82] plot  ( {0+(0.75*cos(\x))}, {0+(0.75*sin(\x))});
\draw [white,thick,line width=0.7mm,domain=94:266] plot ({0+(0.6*cos(\x))},
{0+(0.6*sin(\x))});
\draw [white,thick,line width=0.7mm,domain=270:352] plot ({0+(0.6*cos(\x))},         {0+(0.6*sin(\x))});
\draw [white,thick,line width=0.7mm,domain=4:90] plot ({0+(0.6*cos(\x))},         {0+(0.6*sin(\x))});
\draw [white,thick,line width=0.7mm,domain=94:266] plot  ( {0+0.45*cos(\x))},         {0+(0.45*sin(\x))});
\draw [white,thick,line width=0.7mm,domain=90:-90] plot  ({0+(0.45*cos(\x))},{0+(0.45*sin(\x))});
\draw[fill,white] (0,0) circle (0.3);
\draw[fill,black] (0.8,0)--(0.8,0.07)--(0.96,0.07)--(0.96,0)--cycle;
\draw[fill,black] (0.5,0)--(0.5,0.07)--(0.7,0.07)--(0.7,0)--cycle;
\draw[fill,white] (1.1,0)--(1.1,-0.07)--(0.45,-0.07)--(0.45,0)--cycle;
\draw[fill, black](-0.07,0.35)--(0,0.35)--(0,0.96)--(-0.07,0.96)--cycle;
\draw[fill,white](0.009,0.43)--(0.0836,0.43)--(0.0836,0.9)--(0.009,0.9)--cycle;
\draw[fill,black](0.1,0.7)--(0.1537,0.7)--(0.1537,0.8)--(0.1,0.8)--cycle;
\draw[fill,white] (0,0)--(0,-0.07)--(-1.1,-0.07)--(-1.1,0)--cycle;
\draw[fill,white](0,-0.45)--(0.0836,-0.45)--(0.0836,-0.9)--(0,-0.90)--cycle;
\draw[fill, black](-0.07,-0.35)--(0,-0.35)--(0,-0.96)--(-0.07,-0.96)--cycle;
\draw[fill,black](-0.65,0.02)--(-0.83,0.02)--(-0.83,0.07)--(-0.65,0.07)--cycle;
\draw[fill,black](-0.65,-0.1)--(-0.83,-0.1)--(-0.83,-0.14)--(-0.65,-0.14)--cycle;
\draw[fill,black](0.5,-0.085)--(0.66,-0.085)--(0.66,-0.14)--(0.5,-0.14)--cycle;
\draw[fill,black](0.8,-0.089)--(0.96,-0.089)--(0.96,-0.14)--(0.8,-0.14)--cycle;
\draw[fill,black](0.1,-0.7)--(0.1537,-0.7)--(0.1537,-0.8)--(0.1,-0.8)--cycle;
\end{tikzpicture}

• Hint if you make the code and press CTRL-k then the code is indented and the site will display it nicely in a verbatim manner. Please also note that we perfer that all code examples are full minimal examples not sniplets like this. Instead post a minimal docxument including document class and suitable (minimal) preamble. Then it is a lot easier to just copy and test your example. Jun 30, 2020 at 10:46
• You can use arc[start angle=..., end angle=..., radius=...] instead of plotting a sine/cosine. The main difference is that arcs are done relative to the starting edge point rather than the center. The only tricky bit would be getting the thick black lines to match the curved edges, which could be done again by including arcs in the filll. Jun 30, 2020 at 13:50
• This painting is a work of Mongolian calligraphy. It can draw using the languages and vectorgraph tikz. 1. An error occurred while issuing the increase and decrease command. 2. The edge of the line because of the differences I can not create a suitable map. 3. Please give me an easier opportunity !! Jul 1, 2020 at 6:42
• The lack of i in Orginal (on your picture) is left unchanged for your own house keeping. Jul 2, 2020 at 7:48

With TikZ using intersections of circles and lines (68 intersections!):

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{intersections,calc}
\begin{document}
\newcommand{\myInters}[4]{
\path[name intersections={of={#1 and #2},by={#3,#4}}];}
\newcommand{\myArc}[2]{%
(i-#1)
let
\p1=(i-#1),
\p2=(i-#2),
\n{startAn}={atan2(\y1,\x1)},
\n{endAn}={atan2(\y2,\x2)}
in
%\myArc{start point}{end point}
\begin{tikzpicture}

\def\incr{1}%width of the lines

\def\startPos{\incr/2}

\def\myRad{3.1415}%radius of the most internal circle. Try 5 to get a figure like the original image

%circles
\foreach \incrRad [count=\k] in {1,2,...,10} {
}

%vertical lines

%horizontal lines
%intersections of lines and circles
\def\IntersectionsList{%
c-3/v-3/i-1/i-42,c-3/o-2/i-2/i-17,c-6/o-2/i-3/null,c-6/v-4/i-4/i-39,c-7/v-4/i-5/i-38,
c-7/o-2/i-6/null,c-10/o-2/i-7/i-8,c-9/o-2/null/i-9,c-9/v-1/i-10/i-33,c-8/v-1/i-11/i-32,
c-8/o-2/null/i-12,c-2/v-1/i-19/i-24,c-5/o-2/null/i-13,c-5/v-1/i-14/i-29,c-2/v-1/i-19/i-24,
c-4/v-1/i-15/i-28,c-4/o-2/null/i-16,c-3/v-1/i-18/i-25,c-2/v-1/i-19/i-24,c-2/o-2/null/i-20,
c-1/o-2/null/i-21,c-1/o-3/i-22/null,c-2/o-3/i-23/null,c-3/o-3/i-26/i-41,c-4/o-3/i-27/null,
c-5/o-3/i-30/null,c-8/o-3/i-31/null,c-9/o-3/i-34/null,c-10/o-3/i-35/i-36,c-7/o-3/null/i-37,
c-6/o-3/null/i-40,c-4/v-3/i-60/i-43,c-4/o-4/null/i-44,c-5/o-4/null/i-45,c-5/v-3/i-57/i-46,
c-8/v-3/i-56/i-47,c-8/o-4/null/i-48,c-9/o-4/null/i-49,c-9/v-2/i-53/i-50,c-2/v-2/i-52/i-51,
c-9/o-1/i-54/null,c-8/o-1/i-55/null,c-5/o-1/i-58/null,c-4/o-1/i-59/null,c-6/v-1/i-61/i-66,
c-6/o-1/null/i-62,c-7/o-1/null/i-63,c-7/v-1/i-64/i-67,c-6/o-4/i-65/null,c-7/o-4/i-68/null}

\foreach \elA/\elB/\elC/\elD in \IntersectionsList {
\myInters{\elA}{\elB}{\elC}{\elD}
}

\fill[black,even odd rule]
\myArc{1}{2} \myArc{3}{4} \myArc{5}{6} \myArc{7}{8} \myArc{9}{10} \myArc{11}{12}
\myArc{13}{14} \myArc{15}{16} \myArc{17}{18} \myArc{19}{20} \myArc{21}{22}
\myArc{23}{24} \myArc{25}{26} \myArc{27}{28} \myArc{29}{30} \myArc{31}{32}
\myArc{33}{34} \myArc{35}{36} \myArc{37}{38} \myArc{39}{40} \myArc{41}{42}
\myArc{43}{44} \myArc{45}{46} \myArc{47}{48} \myArc{49}{50} \myArc{51}{52}
\myArc{53}{54} \myArc{55}{56} \myArc{57}{58} \myArc{59}{60} cycle
\myArc{61}{62} \myArc{63}{64} cycle
\myArc{65}{66} \myArc{67}{68} cycle;

\end{tikzpicture}
\end{document}


There aren't problems in scale this graphic:

• This seems the best answer so far, picking up on several visually significant aspects that other answers have missed: the widths of all black lines are equal, and also the same width as the white space between them (important for the figure/ground duality); and all end-caps are aligned horizontally/vertically. But it would be good to add scaled versions, to show it avoids the issues there that OP mentioned in the question. Jul 2, 2020 at 9:49
• @PeterLeFanuLumsdaine I've improve the answer with your request. Jul 3, 2020 at 12:35

I propose a variant using pst-eucl (the colours are only for demo purposes):

\documentclass[12pt, border=6pt]{standalone}
\usepackage{pst-eucl, multido}

\begin{document}

\begin{pspicture}(-3,-3)(3,3)
\psset{PointName=none, PointSymbol=none}
\pstGeonode[PointSymbol=none, PointName=none](0,0){O}(0.3,3){A}(0.3,-3){B}(3, 0.15){C}(-3,0.15){D}(3, -0.15){E}(-3, -0.15){F}
\pnodes{N}(0,1.3)(0,1.6)(0,1.9)(0, 2.25)(0,1)
\pnodes{S}(0,-1.3)(0,-1.6)(0,-1.9)(0, -2.25)(0,-1)

\multido{\i= 0+ 1}{5}{%
\pstInterLC{A}{B}{O}{N\i}{E\i}{F\i}%
\pstInterLC{C}{D}{O}{N\i}{G\i}{H\i}%
\pstInterLC{E}{F}{O}{N\i}{K\i}{L\i}}%

\psset{linewidth=4.5pt, dimen=outer}%
\pstArcOAB{O}{L4}{H4}
\pscustom[linecolor=red]{\pstArcnOAB{O}{E0}{G0} \pstArcOAB{O}{G1}{E1} \pstArcnOAB{O}{E2}{G2} \pstArcOAB{O}{G3}{N3}}%
\pscustom{\pstArcnOAB{O}{H0}{N0}\pstArcOAB{O}{N1}{H1}\pstArcnOAB{O}{H2}{N2}\pstArcOAB{O}{N3}{H3}}
\pscustom[linecolor=blue]{\pstArcnOAB{O}{S0}{L0} \pstArcOAB{O}{L1}{S1} \pstArcnOAB{O}{S2}{L2}\pstArcOAB{O}{L3}{S3}}
\pscustom[linecolor=green]{\pstArcOAB{O}{F0}{K0} \pstArcnOAB{O}{K1}{F1} \pstArcOAB{O}{F2}{K2} \pstArcnOAB{O}{K3}{S3}
}%
\psset{linewidth=6pt, nodesepB=-2.25pt}
\pstLineAB{N4}{N3} \pstLineAB{S4}{S3}
\end{pspicture}

\end{document}


• This loses one quite significant feature of the original: the widths of the black lines are equal to the widths of the white spaces between them, giving a nice figure/ground duality. Jul 2, 2020 at 9:52
• @PeterLeFanuLumsdaine: 1) I don't see them as all equal. Only the outer white space is equal to lines widths. Furthermore, the vertical line are slightly thicker than the lines of the circle arcs. 2) It is not hard to adapt the coordinates (or the line widths) so that the generall look changes. It's one of the reasons why I used pstricks nodes. Jul 2, 2020 at 10:01

Run with xelatex or latex->dvips->ps2pdf

\documentclass{standalone}
\usepackage{pstricks}
\def\quartA{%
\pscustom[linewidth=3mm,linejoin=1]{%
\psarc(0,0){2}{184}{270}
\psline(4;270)
\psarc(0,0){4}{270}{356}
\rlineto(-0.5,0)
\psarcn(0,0){3.5}{355}{278}
\rlineto(0,0.5)
\psarc(0,0){3}{279.5}{354}
\rlineto(-0.5,0)
\psarcn(0,0){2.5}{352.5}{278}}}
\def\quartB{%
\pscustom[linewidth=3mm,linejoin=1]{%
\psarc(0,0){4}{272}{360}
\rlineto(-0.5,0)
\psarcn(0,0){3.5}{360}{274}
\rlineto(0,0.5)
\psarc(0,0){3}{275}{360}
\rlineto(-0.5,0)
\psarcn(0,0){2.5}{360}{274}}}

\begin{document}

\begin{pspicture}(-5,-5)(5,5)
\quartA
\rput{-90}(0,0){\quartB}
\rput{90}(0,0){\psscalebox{1 -1}{\quartB}}
\rput(0,0){\psscalebox{1 -1}{\quartA}}
\psarc[linewidth=3mm](0,0){2}{270}{90}
\end{pspicture}

\end{document}