\tkzDrawArc[R,arc](B,1.1*\dBD)(20,83)
效果很好。但是\tkzDrawCircle[R]
不起作用……
\documentclass[border=2pt]{standalone}
\usepackage[usenames,dvipsnames,svgnames]{xcolor}
\usepackage{tkz-euclide}
\usetkzobj{all}
\definecolor{fondpaille}{cmyk}{0,0,0.1,0}
\pagecolor{fondpaille}
\color{Maroon}
\begin{document}
\begin{tikzpicture}[scale=1.0]
\tkzDefPoint(0,0){B}
\tkzDefPoint(0,6){A}
\tkzDefPoint(8,0){C}
\tkzLabelPoints[below](B,C)
\tkzLabelPoints[left](A)
\tkzDrawSegment[thick](A,B)
\tkzDrawSegment[thick](C,B)
\tkzDrawSegment[thick](A,C)
\tkzDefMidPoint(B,C)\tkzGetPoint{M}
\tkzInterLC(A,C)(M,C) \tkzGetPoints{D}{E} \tkzLabelPoints[above](D)
\tkzDrawSegment[thick](B,D)
\tkzCalcLength[cm](B,D) \tkzGetLength{dBD}
\tkzDrawArc[R,arc](B,1.1*\dBD)(20,83)
\tkzDrawCircle[R](A,1.1*\dBD)
%\tkzInterLC[R](A,C)(B,1.1*\dBD) \tkzGetPoints{D_1}{D_2}
\end{tikzpicture}
\end{document}
答案1
该宏\tkzGetLength
返回以 表示的长度pt
,如果使用cm
,则在调用时必须将该测量值转换为厘米。
\tkzDrawCircle[R](A,\dBD cm)
代替\tkzDrawCircle[R](A,\dBD)
此外,在传递参数期间禁止计算,以便您选择计算引擎(参见手册第 57 页):
pgf
和\pgfsetmacro
fp
和\fpeval
\documentclass[border=2pt]{standalone} \usepackage[usenames,dvipsnames,svgnames]{xcolor} \usepackage{tkz-euclide} \usetkzobj{all} \definecolor{fondpaille}{cmyk}{0,0,0.1,0} \pagecolor{fondpaille} \color{Maroon} \begin{document} \begin{tikzpicture}[scale=1.0] \tkzDefPoint(0,0){B} \tkzDefPoint(0,6){A} \tkzDefPoint(8,0){C} \tkzLabelPoints[below](B,C) \tkzLabelPoints[left](A) \tkzDrawSegment[thick](A,B) \tkzDrawSegment[thick](C,B) \tkzDrawSegment[thick](A,C) \tkzDefMidPoint(B,C)\tkzGetPoint{M} \tkzInterLC(A,C)(M,C) \tkzGetPoints{D}{E} \tkzLabelPoints[above](D) \tkzDrawSegment[thick](B,D) \tkzCalcLength[cm](B,D) \tkzGetLength{dBD} \pgfmathsetmacro{\tkzLen}{1.1*\dBD} \tkzDrawArc[R,arc](B, \tkzLen cm)(20,83) \tkzDrawCircle[R](A,\dBD cm) \tkzInterLC[R](A,C)(B, \tkzLen cm ) \tkzGetPoints{D_1}{D_2} \end{tikzpicture} \end{document}
输出