算法

算法

我需要画一个对角线垂直的等腰梯形,但我不知道从哪里开始。这是我的对角线垂直的正方形代码(如果它有用的话)。

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

在此处输入图片描述

算法

  • 定义两点OA
  • 定义点B使得OA垂直于OB
  • 定义为逆时针C旋转点的图像。BO
  • 定义为顺时针D旋转点的图像。 AO
  • 画出线条。

答案2

ABXY是一个等腰梯形,其对角线垂直AX,且BY

那么,三角形AOB是等腰三角形,且在 处为直角O(即 处的角O为直角)。因此,底角应为 45 度。

由于ABXY平行,要构造梯形,只需选择长度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_1r_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用于命名角点的,这样您就可以绘制对角线。当然,您可以旋转物体等等。

相关内容