私は群論の記事のイラストを描いています。三角形の頂点の 1 つから出てくる光線を横切る三角形の反射過程を描きたいと思っています。
これまでのところ、次のものがあります:
\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}
三角形の頂点の座標を取得するにはどうすればいいでしょうか? 現在は手動で計算していますが、見栄えがよくありません。
手動でパディングを設定せずに、左と右の三角形を矢印から等距離になるように配置するにはどうすればよいですか?
矢印 a を上方向に移動して、三角形の垂直中心に配置することは可能ですか?
答え1
1-)corners
オプションを使用して、コーナーをノードとして取得できますregular polygon
。
2-) 内に 2 番目の三角形を描きますscope
。xshift=Xcm
次に、x
矢印の座標を として使用します(X/2,0)
。
3-) 適切な値を手動で調整できますy
。
\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}
答え2
楽しみのために、pstricks、より具体的には を使用した簡単なコードをpst-eucl
作成しました。原点に対して対称な 2 組の点を描き、これらの線分から 2 つの正三角形を作成するように指示し、最初の三角形の高さを $A$ を通して描き、最後に三角形の間に含意記号を配置しました。
\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}