我想绘制不同的全等三角形。因此,我想变换和旋转给定的三角形。
这是我的代码
\documentclass{article}
\usepackage{tkz-euclide}
\usetkzobj{all}
\newcommand{\driehoekA}[3]{
\begin{scope}[xshift=#1cm,yshift=#2cm]
\tkzDefPoints{1/1/A, 2/4/B, 7/2/C}
\tkzDrawPolygon[fill=orange!30](A,B,C)
\tkzDefBarycentricPoint(A=1,B=1,C=1) \tkzGetPoint{D}
\node at (D) {$#3$} ;
\end{scope}
}
\begin{document}
\begin{center}
\begin{tikzpicture}[scale=0.5]
\tkzInit[ymax=10, xmax=20]
\tkzGrid
\tkzClip
\driehoekA{0}{0}{F_1}
\begin{scope}[rotate around={10:(D)}]
\driehoekA{4}{5}{F_2}
\end{scope}
\end{tikzpicture}
\end{center}
\end{document}
结果是:
图2实际上并没有绕点D旋转,而是绕点D2旋转。
如果我可以输入 shift= ... 、 yshift= ... 和旋转角度,我的问题就解决了。
(我也认为我的代码可以更好?)
答案1
问题:您需要在平移之前进行旋转,但您不知道质心……因此很难围绕它旋转三角形。
一个想法是像我的解决方案中那样定义宏外部的质心 G,然后平移这个质心 G',然后围绕 G' 旋转。
仅使用 TikZ 也许您需要看一下这个概念: 108.2.4 保存和恢复坐标变换矩阵
这是我的解决方案,也许你需要 tkz-euclide 上的新版本这里
\documentclass[border=.25cm]{standalone}
\usepackage{tkz-euclide}
\newcommand{\driehoekA}[3]{
\tkzDefShiftPointCoord[G](#1,#2){G'}
\tkzDefPointsBy[rotation=center G angle #3](A,B,C){A',B',C'}
\tkzDefPointsBy[translation=from G to G'](A',B',C'){a,b,c}
\tkzDrawPolygon[fill=orange!30](a,b,c)
\tkzDrawPoint(G')
}
\begin{document}
\begin{tikzpicture}[scale=1]
\tkzDefPoints{1/1/A, 2/4/B, 7/2/C}
\tkzDefBarycentricPoint(A=1,B=1,C=1) \tkzGetPoint{G}
\tkzDrawPolygon[fill=orange!30](A,B,C)
\tkzDrawPoint(G)
\driehoekA{5}{2}{90}
\driehoekA{0}{5}{60}
\end{tikzpicture}