
固定角度、幅、高さの平行四辺形を描きたいのですが、trapezium
PGF/TikZ では角度を変えずに高さを指定できないようです。
\documentclass[tikz]{standalone}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}
\tikzstyle{every node}=[trapezium, draw, minimum width=3cm,
trapezium left angle=120, trapezium right angle=60]
\node[trapezium stretches body]
at (0,0) {A};
\node[trapezium stretches body, rotate=-30]
at (0,1.5) {A rotate $-30^\circ$};
\node[minimum height=1cm, trapezium stretches body]
at (5,0) {B};
\node[minimum height=1cm, trapezium stretches body, rotate=-30]
at (5,1.8) {B rotate $-30^\circ$};
\node[minimum height=1cm]
at (0,-2) {C};
\node[minimum height=1cm, rotate=-30]
at (0,-4) {C rotate $-30^\circ$};
\node[minimum height=1cm, trapezium stretches]
at (5,-2) {D};
\node[minimum height=1cm, trapezium stretches, rotate=-30]
at (5,-4) {D rotate $-30^\circ$};
\end{tikzpicture}
\end{document}
出力:
同じ幅で縦に太いバージョンの A が欲しいです。
AとBは角度が異なりますが、単に「最小高さ「A を回転したバージョンには垂直な西側/東側があり、それが必要なものです。B を回転したバージョンには垂直な西側/東側がありませんが、A と同じ角度と幅を持つ「より高い」平行四辺形が必要です。」
C: 「僧帽筋は体を伸ばす「幅と高さが制御不能な平行四辺形になります。D: 「台形が体を伸ばす」を「台形ストレッチ「何も役に立たない。」
答え1
おそらく、次の説明で何が起こっているのかをよりよく説明できるでしょう。テキストが短くなり、テキストが長くなるにつれてノードが高くなり短くなるという奇妙な現象は、制約が尊重されているため発生します。
\documentclass[tikz]{standalone}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}
\tikzstyle{every node}=[trapezium, draw, minimum width=3cm,
trapezium left angle=120, trapezium right angle=60]
\node[trapezium stretches=false,minimum height=1cm]
at (0,0) {A};
\node[trapezium stretches=false,minimum height=1cm]
at (0,1.5) {\fbox{A long }};
\node[trapezium stretches=false,minimum height=1cm]
at (0,3) {\fbox{A long text}};
\draw[thick,green,|-|] (-1.5,-.5) -- (1.5,-0.5);
\draw[thick,green,|-|] (-1.5,0.5) -- (-1.5,-0.5);
\draw[thick,blue,|-|] (-1.5,1) -- (1.5,1);
\draw[thick,blue,|-|] (-1.5,1) -- (-1.5,2);
\draw[thick,red,|-|] (-1.5,2.5) -- (1.5,2.5);
\draw[thick,red,|-|] (-1.5,2.5) -- (-1.5,3.5);
\end{tikzpicture}
\end{document}
最小幅と最小高さが尊重され、余地があればノードが高くなることがわかります。これは、制約がないためです。言い換えると、最小値にのみ制約があり、最大値には制約がないため、下の例では最小値が尊重され、角度が一致するように試みられます。ノードが短く、角度が固定されている場合、最小高さは尊重されません。したがって、このために、ストレッチオプションなどのいくつかのオプションが提案されています。すべてのfalseキーをtrueにすると、次のようになります。
したがって、形状の角度は制約に従って変形されます。同様に、trapezium stretches body
キーは幅のみを拡張します。ただし、角度が設定されている場合は、制約を尊重し、角度が実現可能かどうかを確認する必要があります。したがって、異なるタイプの制約が必要です。これは、アンカーでラベルを使用したりcenter
、サイズに関係なくノードの上に描画したりするなどです。