在 tkz-euclide 中定义新命令

在 tkz-euclide 中定义新命令

如何定义新命令

\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}

相关内容