我发现新版本 `tkz-euclide 的参考示例存在问题v2.56c
在查看详细信息之前,我用不同的值绘制了几张图。和scale
没有任何问题scale=1
,但使用或等其他比例时,我得到了很强的结果。 很难知道错误来自哪里:TikZ 或 tkz-euclide。scale=0.5
scale=2
scale=4
scale=0.75
scale=1.5
我的尝试、研究和思考
- 0.5 1 2 4 奇怪的是只有 2 的幂才能给出好的结果
- 我使用了两种方法来获得预期的结果,一种方法是长,另一种是短。第一种方法很好(没有问题),第二种方法使用软件包的新工具来防止用户进行不必要的计算。最后一种方法是有问题的
- 预期结果?:给定一个三角形ABC。我们描出外切圆并寻找阿波罗尼乌斯圆环它是圆的切线 它是三个内切圆的切线
- 我手动更改了坐标,结果是正确的:6、0.8 和 4 中的 0.75,比例 = 1
我给出了两张图片scale =0.5
,scale=.75
第二种方法是用红色表示
% !TEX TS-program = lualatex-dev
\documentclass[border=5mm]{standalone}
\usepackage{tkz-euclide} % v2.56c
\usetikzlibrary{spy}
\begin{document}
\begin{tikzpicture}[spy using outlines={circle,
magnification=10, size=3cm, connect spies},scale=0.75]
\tkzDefPoints{0/0/A,6/0/B,0.8/4/C}% A triangle
\tkzEulerCenter(A,B,C) \tkzGetPoint{N} % N Nine-point center (euler)
\tkzCircumCenter(A,B,C) \tkzGetPoint{O} % O Circumcenter
\tkzLemoinePoint(A,B,C) \tkzGetPoint{K} % K Symmedian or Lemoine center
\tkzDefTriangleCenter[spieker](A,B,C) \tkzGetPoint{Sp} % Sp Spieker center
%<-------------------------------------------------------->
% First Method I define the excircles
%<-------------------------------------------------------->
\tkzDefExCircle(A,B,C) \tkzGetPoint{Jb} \tkzGetLength{rb}
\tkzDefExCircle(C,A,B) \tkzGetPoint{Ja} \tkzGetLength{ra}
\tkzDefExCircle(B,C,A) \tkzGetPoint{Jc} \tkzGetLength{rc}
% try to get thre points on the Apollonius Circle
\tkzDefPointBy[projection=onto B--C ](Jc) \tkzGetPoint{Xc}
\tkzDefPointBy[projection=onto B--C ](Jb) \tkzGetPoint{Xb}
\tkzDefPointBy[projection=onto A--B ](Ja) \tkzGetPoint{Za}
\tkzDefPointBy[projection=onto A--B ](Jb) \tkzGetPoint{Zb}
\tkzDefLine[parallel=through Xc](A,C) \tkzGetPoint{X'c}
\tkzDefLine[parallel=through Xb](A,B) \tkzGetPoint{X'b}
\tkzDefLine[parallel=through Za](C,A) \tkzGetPoint{Z'a}
\tkzDefLine[parallel=through Zb](C,B) \tkzGetPoint{Z'b}
\tkzInterLL(Xc,X'c)(A,B) \tkzGetPoint{B'}
\tkzInterLL(Xb,X'b)(A,C) \tkzGetPoint{C'}
\tkzInterLL(Za,Z'a)(C,B) \tkzGetPoint{A''}
\tkzInterLL(Zb,Z'b)(C,A) \tkzGetPoint{B''}
\tkzDefPointBy[reflection= over Jc--Jb](B') \tkzGetPoint{Ca}
\tkzDefPointBy[reflection= over Jc--Jb](C') \tkzGetPoint{Ba}
\tkzDefPointBy[reflection= over Ja--Jb](A'')\tkzGetPoint{Bc}
\tkzDefPointBy[reflection= over Ja--Jb](B'')\tkzGetPoint{Ac}
% I have three points Ac,Ca,Ba
% Now I search the center of the circle (circumcenter)
\tkzDefCircle[circum](Ac,Ca,Ba) \tkzGetPoint{Q}
\tkzDrawCircle[circum](Ac,Ca,Ba)
%<-------------------------------------------------------->
% END METHOD 1
%<-------------------------------------------------------->
%<-------------------------------------------------------->
% METHOD 2
% Q in the intersection of K,O and N,Sp
%<-------------------------------------------------------->
\tkzInterLL(O,K)(N,Sp) \tkzGetPoint{Q'}
\tkzDrawPoint[red](Q')
\tkzDefMidPoint(A,B) \tkzGetPoint{M}
\tkzDefLine[parallel=through Q'](N,M) \tkzGetPoint{q}
\tkzInterLL(Q',q)(M,Sp) \tkzGetPoint{z}
\tkzDrawLines[add=10 and 2,red](M,Sp Q',q N,M)
\tkzDrawCircle[red,line width=4pt,opacity=.2](Q,z)
\tkzLabelPoints[above](z)
\tkzLabelPoints[below](M)
%<-------------------------------------------------------->
% END METHOD 2
%<-------------------------------------------------------->
% Now it's only the drawing
\tkzDrawPolygon[color=blue](A,B,C)
\tkzDrawPolygon[dashed,color=blue](Ja,Jb,Jc) %
\tkzDrawCircles[ex](A,B,C B,C,A C,A,B) % circles exinscrits
\tkzDrawLines[add=0 and 0,dashed](Ca,Bc B,Za A,Ba B',C')
\tkzDrawLine[add=1 and 1,dashed](Xb,Xc)
\tkzDrawLine[add=7 and 3,blue](O,K)
\tkzDrawLine[add=8 and 15,red](N,Sp)
\tkzDrawLines[add=10 and 10](K,O N,Sp Q,q M,Sp)
\tkzDrawSegments(Ba,Ca Bc,Ac)
\tkzDrawPoints(A,B,C,N,Ja,Jb,Jc,Xb,Xc,B',C',Za,Zb,Ba,Ca,Bc,Ac,Q,Sp,K,O,z)
\tkzLabelPoints(A,B,C,N,Ja,Jb,Jc,Xb,Xc,B',C',Za,Zb,Ba,Ca,Bc,Ac,Q,Sp)
\tkzLabelPoints[above](K,O)
% spy
\spy [green] on (Q) in node [left] at ([xshift=4cm,yshift=2cm]Q);
\spy [green] on (z) in node [left] at ([xshift=-4cm,yshift=-2cm]z);
\end{tikzpicture}
\end{document}
和scale=0.75
结果scale=0.5
是完美的