Latex / Tikz:如何在一条直线上画垂直线

3

也许你能帮助我,我尝试从一个点/坐标到一条直线上画一条线。我使用Tikz进行绘制。

      \begin{tikzpicture}
      \coordinate [label=left:$A$] (A) at (-5,-5){};
      \coordinate [label=right:$B$] (B) at (5,-5) {};
      \coordinate [label=right:$C$] (C) at (5,1) {};
      \coordinate [label=left:$D$] (D) at (-5,1) {};

      \draw [thick] (A) -- node[midway] {$\parallel$} (B) -- node[sloped]{$\parallel$} (C) -- (D) -- cycle;

      \coordinate (S1) at ($(D)!0.66!(C)$);
      \coordinate (S2) at ($(A)!0.11!(B)$);
      \draw [very thick] (S1) -- node[above]{x} (S2);
      \draw [red!100, thick] (S1) -- node[above]{T} (A -| B );
      \end{tikzpicture}

这里应该放红线

红线应该从坐标(S1)垂直地延伸到直线(A-B)上。 我尝试将其绘制成这样:

     \draw [red!100, thick] (S1) -- node[above]{T} (A -| B );

但是他随后画了一条线到坐标A。

谢谢。

3个回答

3
您可以通过定义AB上的新坐标(例如S3)来实现此操作:
\begin{tikzpicture}
\coordinate [label=left:$A$] (A) at (-5,-5){};
\coordinate [label=right:$B$] (B) at (5,-5) {};
\coordinate [label=right:$C$] (C) at (5,1) {};
\coordinate [label=left:$D$] (D) at (-5,1) {};

\draw [thick] (A) -- node[midway] {$\parallel$} (B) -- node[sloped]{$\parallel$} (C) -- (D) -- cycle;

\coordinate (S1) at ($(D)!0.66!(C)$);
\coordinate (S2) at ($(A)!0.11!(B)$);
\coordinate (S3) at ($(A)!0.66!(B)$);
\draw [very thick] (S1) -- node[above]{x} (S2);
\draw [red!100, thick] (S1) -- node[left]{T} (S3);
\end{tikzpicture}

enter image description here


2

您不需要定义新的坐标,而是可以使用calc库中的投影标识符。

在最后一行,您只需要:

\draw [red!100, thick] (S1) -- node[left]{T} ($(A)!(S1)!(B)$);

这意味着沿着A-B线段,找到S1在A-B上的投影点。

在这种情况下,您可以像OP尝试的那样使用tee操作,但要使用正确的坐标。 - Andrew Swann
@AndrewSwann 只有在 A -- B 是水平的情况下才成立。 - percusse
实际上,tee 命令只适用于水平/垂直情况。 - Andrew Swann

2
您的语法几乎正确,但是tee运算符|--|从一侧获取x坐标,从另一侧获取y坐标。当您编写A -| B时,您会得到A的y坐标和B的x坐标,但在您的代码中,A和B具有相同的x坐标,因此这将再次给出点A。相反,您需要A -| S1,或等效地S1 |- A
 \draw [red!100, thick] (S1) --   node[left]{T} (S1 |- A);

Sample output

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
     \begin{tikzpicture}
      \coordinate [label=left:$A$] (A) at (-5,-5){};
      \coordinate [label=right:$B$] (B) at (5,-5) {};
      \coordinate [label=right:$C$] (C) at (5,1) {};
      \coordinate [label=left:$D$] (D) at (-5,1) {};

      \draw [thick] (A) -- node[midway] {$\parallel$} (B) -- node[sloped]{$\parallel$} (C) -- (D) -- cycle;

      \coordinate (S1) at ($(D)!0.66!(C)$);
      \coordinate (S2) at ($(A)!0.11!(B)$);
      \draw [very thick] (S1) -- node[above]{x} (S2);
      \draw [red!100, thick] (S1) --   node[left]{T} (S1 |- A);
      \end{tikzpicture}
\end{document}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接