瞄准镜围绕定义点的旋转不起作用

瞄准镜围绕定义点的旋转不起作用

我想绘制不同的全等三角形。因此,我想变换和旋转给定的三角形。

这是我的代码

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

在此处输入图片描述

相关内容