524f3d1690afb2f1


3 回答3

0
<p>去看看 tkz-euclide 宏包,比较容易实现。</p>
  • 同样推荐这个宏包 – registor 2020-04-25 16:00 回复
0
<p></p><p>```<br/></p><p>\begin{tikzpicture}<br/>&nbsp;&nbsp;&nbsp; \def\mycircleradius{1}<br/>&nbsp;&nbsp;&nbsp; \fill (0,0) circle [radius=1pt] coordinate[label=-90:$O$] (O);<br/>&nbsp;&nbsp;&nbsp; \draw (O) circle [radius=\mycircleradius];<br/>&nbsp;&nbsp;&nbsp; \foreach \i/\j in {0/B,120/C,180/A}<br/>&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \fill (\i:\mycircleradius) circle [radius=1pt] coordinate[label=\i:$\j$] (\j);<br/>&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp; \fill <span style="color: rgb(255, 0, 0);">($(C)!(A)!($(C)!1!-90:(O)$)$)</span> circle [radius=1pt] coordinate [label=120:$P$](P);<br/>&nbsp;&nbsp;&nbsp; \draw (O)--(C)--(P)--(A)--(B);<br/>\end{tikzpicture}<br/></p><p>```</p><p>这种情况的切线比较容易做。<br/></p>
0
<p>使用tkz-euclide宏包比较方便:</p><pre class="brush:plain;toolbar:false">\documentclass[margin=3pt,   convert,   convert={     outext=.png,     command=\unexpanded{       pdftocairo -r 300 -png \infile % 将生成的pdf文件转换为png图像     }   }   ]{standalone} % 欧几里得图形绘制宏包   \usepackage{tkz-euclide} \begin{document} \begin{tikzpicture}   % 定义坐标   \tkzDefPoint(0,0){A}   \tkzDefPoint(2,0){B}   % 以AB为直径定义圆   \tkzDefCircle[diameter](A,B)   % 获得圆心   \tkzGetPoint{O}   % 计算半径   \tkzCalcLength[cm](O,A) \tkzGetLength{rOA}   % 定义圆上的点C   \tkzDefShiftPoint[O](120:\rOA){C}   % 定义过C点的圆的切线   \tkzDefTangent[at=C](O) \tkzGetPoint{h}   % 定义过C平行于AB的直线    \tkzDefLine[parallel=through C](A,B) \tkzGetPoint{c&#39;}   % 定义过A垂直于Ch切线的直线    \tkzDefLine[orthogonal=through A](C,h) \tkzGetPoint{a&#39;}   % 定义过C垂直于AB的直线     \tkzDefLine[orthogonal=through C](A,B) \tkzGetPoint{c&#39;&#39;}   % 定义过A垂直于Cc&#39;的直线   \tkzDefLine[orthogonal=through A](C,c&#39;) \tkzGetPoint{a&#39;&#39;}   % 求直线交点   \tkzInterLL(A,B)(C,c&#39;&#39;) \tkzGetPoint{I1}   \tkzInterLL(A,a&#39;&#39;)(C,c&#39;) \tkzGetPoint{I2}   \tkzInterLL(C,h)(A,a&#39;) \tkzGetPoint{I3}   % 绘制图形   \tkzDrawCircle(O,B)   \tkzDrawLine[add = 1 and 0.5](C, h)   \tkzDrawSegment(C, I1)   \tkzDrawSegment(A, I2)   \tkzDrawSegment(I2, C)   \tkzDrawSegment(A, I3)   \tkzDrawSegment(A,B)   % 标记点   \tkzDrawPoints(A,B,C)   \tkzLabelPoints(A,B,C)   % 绘制垂直符号   \tkzMarkRightAngle[fill=red!30](A,I3,h) \end{tikzpicture} \end{document}</pre><p>绘制结果:<br></p><p><img src="/data/ueditor/php/upload/image/20200425/1587816551123350.png" title="1587816551123350.png" alt="main-1.png" style="max-width:650px"></p>

你的回答

请登录后回答

你的回答将会帮助更多人,请务必认真回答问题。