缩放选项有问题。缩放的 PGF 方法是什么?

缩放选项有问题。缩放的 PGF 方法是什么?

我发现新版本 `tkz-euclide 的参考示例存在问题v2.56c

在查看详细信息之前,我用不同的值绘制了几张图。和scale没有任何问题scale=1,但使用或等其他比例时,我得到了很强的结果。 很难知道错误来自哪里:TikZ 或 tkz-euclide。scale=0.5 scale=2scale=4scale=0.75scale=1.5

我的尝试、研究和思考

  1. 0.5 1 2 4 奇怪的是只有 2 的幂才能给出好的结果
  2. 我使用了两种方法来获得预期的结果,一种方法是长,另一种是短。第一种方法很好(没有问题),第二种方法使用软件包的新工具来防止用户进行不必要的计算。最后一种方法是有问题的
  3. 预期结果?:给定一个三角形ABC。我们描出外切圆并寻找阿波罗尼乌斯圆环它是圆的切线 它是三个内切圆的切线
  4. 我手动更改了坐标,结果是正确的:6、0.8 和 4 中的 0.75,比例 = 1

我给出了两张图片scale =0.5scale=.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是完美的

在此处输入图片描述

答案1

问题尚未完全解决,但我走在正确的道路上。我必须重新定义数学上正确的构造方法。我避免使用三角函数,如果可能的话,我会使用xfp。Tarass 让我走上了使用 lua 和 L3 的方法的道路,效果非常好,这将是下一步。问题在于不同工具的精度。我曾使用两次 60 度旋转来确定中介,这没问题,但最终这是一个问题。问题出在一些计算和选项之间scale

比例=0.75

在此处输入图片描述

相关内容