如何定义新命令
\tkzDefRelativePoint[#1,#2,#3](20:2){C}
该命令从#1 定义一个点,并将直线#2、#3 的斜率作为 x 轴。
\tkzDefRelativePoint[A,A,B](20:2){C}
该命令从 A 定义一个点,并将直线 A , B 的斜率作为 x 轴。
这是使用
\tkzFindSlopeAngle(A,B)
\tkzGetAngle{tkzangle}
\begin{scope}[rotate=\tkzangle]
\tkzDefShiftPoint[A](20:2){C}
\end{scope}
平均能量损失
\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}
\tkzInit[xmax=4, ymax=3]
\tkzAxeXY
\tkzGrid[color=orange]
\tkzDefPoint(1,0){A}
\tkzDefPoint(3,2){B}
\tkzDefShiftPoint[A](20:2){C'}
%
\tkzFindSlopeAngle(A,B)
\tkzGetAngle{tkzangle}
\begin{scope}[rotate=\tkzangle]
\tkzDefShiftPoint[A](20:2){C}
\end{scope}
%
%\tkzDefRelativePoint[A,A,B](20:2){C}
%
\tkzDrawSegment(A,B)
\tkzDrawSegment[color=red](A,C)
\tkzDrawPoints(A,B,C,C')
\tkzLabelPoints(A,B,C,C')
\end{tikzpicture}
\end{document}
答案1
当然,在这种情况下,括号中的术语不是“可选的”,而只是语法的一部分。
\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}
\def\tkzDefRelativePoint[#1,#2,#3](#4)#5{%
\tkzFindSlopeAngle(#2,#3)
\tkzGetAngle{tkzangle}
\begin{scope}[rotate=\tkzangle]
\tkzDefShiftPoint[#1](#4){#5}
\end{scope}
}
\begin{document}
\begin{tikzpicture}
\tkzInit[xmax=4, ymax=3]
\tkzAxeXY
\tkzGrid[color=orange]
\tkzDefPoint(1,0){A}
\tkzDefPoint(3,2){B}
\tkzDefShiftPoint[A](20:2){C'}
%
%\tkzFindSlopeAngle(A,B)
%\tkzGetAngle{tkzangle}
%\begin{scope}[rotate=\tkzangle]
%\tkzDefShiftPoint[A](20:2){C}
%\end{scope}
%
\tkzDefRelativePoint[A,A,B](20:2){C}
%
\tkzDrawSegment(A,B)
\tkzDrawSegment[color=red](A,C)
\tkzDrawPoints(A,B,C,C')
\tkzLabelPoints(A,B,C,C')
\end{tikzpicture}
\end{document}