下面我想画一幅蒙古文书法作品。
当我按如下方式缩放它时,出现了一些问题。
这是我使用 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}
答案1
含钛钾Z 使用圆和线的交点(68 个交点!):
\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{rad}={veclen(\x1,\y1)},
\n{startAn}={atan2(\y1,\x1)},
\n{endAn}={atan2(\y2,\x2)}
in
arc[start angle=\n{startAn},end angle=\n{endAn},radius=\n{rad}] -- }
%\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} {
\path[name path=c-\k] (0,0) circle ({\myRad+\incrRad*\incr});
}
%vertical lines
\path[name path=v-1] (-\startPos,-\myRad-10.1*\incr) -- (-\startPos,\myRad+10.1*\incr);
\path[name path=v-2] (\startPos,-\myRad-10.1*\incr) -- (\startPos,\myRad+10.1*\incr);
\path[name path=v-3] (\startPos+\incr,-\myRad-10.1*\incr) -- (\startPos+\incr,\myRad+10.1*\incr);
\path[name path=v-4] (\startPos+2*\incr,-\myRad-10.1*\incr) --
(\startPos+2*\incr,\myRad+10.1*\incr);
%horizontal lines
\path[name path=o-1] (-\myRad-10.1*\incr,\startPos+\incr) -- (\myRad+10.1*\incr,\startPos+\incr);
\path[name path=o-2] (-\myRad-10.1*\incr,\startPos) -- (\myRad+10.1*\incr,\startPos);
\path[name path=o-3] (-\myRad-10.1*\incr,-\startPos) -- (\myRad+10.1*\incr,-\startPos);
\path[name path=o-4] (-\myRad-10.1*\incr,-\startPos-\incr) -- (\myRad+10.1*\incr,-\startPos-\incr);
%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}
这张图的比例没有问题:
答案2
我建议使用一种变体pst-eucl
(颜色仅用于演示目的):
\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}
答案3
使用xelatex
或运行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}