我需要画一个对角线垂直的等腰梯形,但我不知道从哪里开始。这是我的对角线垂直的正方形代码(如果它有用的话)。
\begin{tikzpicture}[scale=5.5]
\coordinate[label=left:$W$] (W) at (0,0);
\coordinate[label=right:$X$] (X) at (1,0);
\coordinate[label=:$Y$] (Y) at (1, 1);
\coordinate[label=:$Z$] (Z) at (0, 1);
\coordinate[label=:$O$] (O) at (0.5, 0.5);
\draw[] (W)--(X)--(Y)--(Z)--(W)--(Y)--(Z)--(X);
\draw (O) -- node[sloped] {$\|$} (Y);
\draw (O) -- node[sloped] {$\|$} (Z);
\draw (O) -- node[sloped] {$\|$} (X);
\draw (O) -- node[sloped] {$\|$} (W);
\end{tikzpicture}
我是否必须用数学方法找到这样一个梯形的坐标,还是有其他方法可以做到?非常感谢大家的帮助!
答案1
PSTricks 解决方案仅用于好玩的目的。
\documentclass[pstricks,12pt]{standalone}
\usepackage{pst-eucl}
\begin{document}
\foreach \a in {0,10,...,350}{%
\pspicture(-7,-7)(7,7)
\pstGeonode(0,0){O}(2;\a){A}([offset=6]{A}O){B}
\pstRotation[RotAngle=-90]{O}{A}[D]
\pstRotation[RotAngle=90]{O}{B}[C]
\psline(A)(B)(C)(D)(A)(C)(D)(B)
\endpspicture}
\end{document}
算法
- 定义两点
O
和A
。 - 定义点
B
使得OA
垂直于OB
。 - 定义为逆时针
C
旋转点的图像。B
O
- 定义为顺时针
D
旋转点的图像。A
O
- 画出线条。
答案2
设ABXY
是一个等腰梯形,其对角线垂直AX
,且BY
。
那么,三角形AOB
是等腰三角形,且在 处为直角O
(即 处的角O
为直角)。因此,底角应为 45 度。
由于AB
和XY
平行,要构造梯形,只需选择长度r_1 = OX
和就足够了r_2 = OA
。
如果坐标系的原点是,O=(0,0)
那么顶点可以用极坐标表示:
A=(-135:r_2) B=(- 45:r_2) X=( 45:r_1) Y=(135:r_1)
以下平均能量损失其中命令
\newcommand{\radioi}{1cm}
\newcommand{\radioii}{2cm}
确定半径r_1
和r_2
。
平均能量损失
\documentclass[margin=2mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[scale=2]
\newcommand{\radioi}{1cm}
\newcommand{\radioii}{2cm}
\coordinate[label=below:$O$] (O) at ( 0:0 );
\coordinate[label=left:$A$] (A) at (-135:\radioii);
\coordinate[label=right:$B$] (B) at (- 45:\radioii);
\coordinate[label=right:$X$] (X) at ( 45:\radioi );
\coordinate[label=left:$Y$] (Y) at ( 135:\radioi );
\draw (A) -- (B) -- (X) -- (Y) -- cycle;
\draw[dashed] (A) -- (X) (B) -- (Y);
\end{tikzpicture}
\end{document}
答案3
概念上与@Sigur 的回答很好但参数化略有不同。有两个自由参数,可以取为上边缘的长度和高度。它们进入以下命令:
\draw[isosceleles trapezium=of width 2 and height 3 and name my trap];
这说明
\documentclass[tikz,border=3.14mm]{standalone}
\begin{document}
\begin{tikzpicture}[isosceleles trapezium/.style args={of width #1 and height #2
and name #3}{insert path={
(45:{#1/sqrt(2)}) coordinate(#3-TR) -- (-45:{sqrt(#2*#2-#1*#1/2)}) coordinate(#3-BR)
-- (-135:{sqrt(#2*#2-#1*#1/2)}) coordinate(#3-BL) -- (135:{#1/sqrt(2)}) coordinate(#3-TL) -- cycle}}]
\draw[isosceleles trapezium=of width 2 and height 3 and name my trap];
\draw[dashed] (my trap-TL) -- (my trap-BR) (my trap-TR) -- (my trap-BL);
\draw[latex-latex] ([yshift=2mm]my trap-TL) -- ([yshift=2mm]my trap-TR)
node[midway,fill=white] {$w$};
\draw[latex-latex] ([xshift=-2mm]my trap-TL -| my trap-BL) --
([xshift=-2mm]my trap-BL) node[midway,fill=white] {$h$};
\begin{scope}[xshift=6cm,rotate=30]
\draw[isosceleles trapezium=of width 1 and height 2.5 and name another trap];
\draw[dashed] (another trap-TL) -- (another trap-BR) (another trap-TR) -- (another trap-BL);
\end{scope}
\end{tikzpicture}
\end{document}
因此第一个参数是w
,第二个参数是h
。此外,还有一个name
用于命名角点的,这样您就可以绘制对角线。当然,您可以旋转物体等等。