答案1
和tkz-euclide
一些关于风格的概念TikZ
\documentclass{standalone}
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}
\tkzDefPoints{3/1/A,2/4/B}
\tkzDefLine[mediator](A,B) \tkzGetPoints{C}{D}
\tkzDrawPoints(A,B)
\tkzDrawLine(C,D)
\tkzDrawCircle[diameter](A,B) \tkzGetPoint{I}
\foreach \p in {,0,0.2,...,1}
{\tkzDefPointOnLine[pos=\p](C,D) \tkzGetPoint{K}
\tkzDrawPoint(K)
\tkzDrawCircle(K,A)
\tkzCompasss[delta=10,color=red, thick](A,K B,K) }
\end{tikzpicture}
\end{document}
\documentclass{article}
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}
\tkzDefPoints{0/0/O,-4/0/B,4/0/A}
\tkzDrawSemiCircle(O,A)
\tkzDrawSegment(A,B)
\foreach \i/\an in {1/30,2/60,3/90,4/120,5/150}{%
\tkzDefPoint(\an:4){C\i}
\tkzDrawSegments({B,C\i} {C\i,A})
\tkzMarkRightAngle(B,C\i,A)
}
\end{tikzpicture}
\end{document}
\documentclass{standalone}
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}
\tkzDefPoints{0/0/O,4/0/A}
\tkzDrawCircle(O,A)
\foreach \i/\a in {1/0,2/72,3/144,4/216,5/288} {%
\tkzDefPoint(\a:4){c_\i}
\tkzDrawCircle[R](c_\i,4)
\tkzDrawPoint[color=red,shape=cross out,size=12pt](c_\i)}
\end{tikzpicture}
\end{document}
答案2
使用 tikz 并不难,不要害怕这堆堆积如山的文档。试试看。一个小例子向你展示代码的可读性
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning,calc}
\begin{document}
\begin{tikzpicture}
\draw[red] (0,0) circle (3cm);
\draw (-3,0) coordinate(A) node[left]{A} --(3,0)coordinate(B)node[right]{B};
\foreach \aa in {18,30,65, 125,150,195,260,-35,290}
{\draw (A) -- ({3*cos(\aa)},{3*sin(\aa)}) -- (B);
}
\end{tikzpicture}
\end{document}