Estou trabalhando em uma ilustração para um artigo sobre teoria de grupos. Quero desenhar um processo de reflexão de um triângulo através de um raio que sai de um de seus vértices.
Até agora tenho o seguinte:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric,decorations.markings,arrows,positioning}
\tikzset{
buffer/.style={
draw,
regular polygon,
regular polygon sides=3,
node distance=3cm,
minimum height=6em
}
}
\begin{document}
\begin{tikzpicture}
\node[buffer] (T) {};
\coordinate [label=left:B] (B) at (-0.9cm, -0.6);
\coordinate [label=above:A] (A) at (0,1.04cm);
\node at (3.3em, -0.5) {C};
\draw (A) -- (B-|A) -- (-90:1.5cm) node[above right]{$l_1$};
\node[right = 1cm of T] (Arr) {$\Longrightarrow$};
\node[buffer, right = 0.5cm of Arr] (T1) {};
\end{tikzpicture}
\end{document}
Como posso obter as coordenadas dos vértices do triângulo? Agora estou calculando manualmente, o que não parece bom.
Como posicionar os triângulos esquerdo e direito, para que fiquem equidistantes da seta sem definir o preenchimento manual?
É possível mover a seta a para cima, de modo que fique no centro vertical dos triângulos?
Responder1
1-) Você pode usar a corners
opção e obter os cantos como nó para regular polygon
.
2-) Desenhe o segundo triângulo dentro scope
com xshift=Xcm
. Em seguida, use a x
coordenada da seta como (X/2,0)
.
3-) Pode ser ajustado manualmente dando y
valor adequado.
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric,decorations.markings,arrows,positioning}
\tikzset{
buffer/.style={
draw,
regular polygon,
regular polygon sides=3,
node distance=3cm,
minimum height=6em
}
}
\begin{document}
\begin{tikzpicture}
\node[buffer] (T) {};
\begin{scope}[xshift=4cm];
\node[buffer] (T1) {};
\end{scope}
\node at (2,0.25) (Arr) {$\Longrightarrow$};
\node at (T.corner 1)(A)[above]{A};
\node at (T.corner 2)(B)[left]{B};
\node at (T.corner 3)(C)[right]{C};
\draw (A) -- (B-|A) -- (-90:1.5cm) node[above right]{$l_1$};
\end{tikzpicture}
\end{document}
Responder2
Para se divertir, um código simples com pstricks, mais especificamente com pst-eucl
. Desenhei dois pares de pontos, simétricos em relação à origem, e pedi para construir dois triângulos equiláteros a partir desses segmentos, depois desenhei a altitude do primeiro triângulo através de $A$ e finalmente coloquei o símbolo de implicação entre os triângulos.
\documentclass[border=6pt]{standalone}
\usepackage{pst-eucl}%
\begin{document}
\begin{pspicture}(-4.5,-1)(4,3)%
\psset{PointSymbol=none, PtNameMath=false, linejoin=1}
\pstGeonode[PosAngle={180,0}](-4,0){B}(-1,0){C} \pstETriangleAB[PosAngle=90]{B}{C}{A}
\rput(0.1,1.3 ){$\Longrightarrow$}
\psset{PointName=none}
\pstGeonode[PointName=none](1,0){E}(4,0){F}\pstETriangleAB[PointName=none] {E}{F}{D}
\pstProjection{B}{C}{A}[H]
\pstLineAB[nodesepB=-1, linewidth=0.6pt]{A}{H}\naput[npos=0.9, labelsep=2pt]{$l_1 $}
\end{pspicture}
\end{document}