绘制一个矩形,为各边指定不同的布局

绘制一个矩形,为各边指定不同的布局

给定两个坐标(v1)和(v2),我的目标是绘制一个矩形,如下所示:

  1. 一侧由 (v1)--(v2) 唯一定义。
  2. 另一边的长度为 1。
  3. 穿过 (v1)-(v2) 的线是黑色。
  4. 与 (v1)--(v2) 平行的线是绿色。
  5. 其余各面均为灰色且有斑点。

有人知道怎么做吗?我尝试计算矩形的明确角,但结果却得出了非常糟糕的数字。

通过简单的坐标它应该看起来像这样:

\begin{tikzpicture}
\coordinate (v1) at (-3, 0);
\coordinate (v2) at (3,0);
\coordinate (v3) at (3,1);
\coordinate (v4) at (-3,1);

\draw[fill, black] (v1) circle[radius=1pt];
\draw[fill, black] (v2) circle[radius=1pt];
\draw[fill, black] (v3) circle[radius=1pt];
\draw[fill, black] (v4) circle[radius=1pt];

\draw (v1)--(v2);
\draw [gray, dashed] (v2)--(v3);
\draw [green] (v3)--(v4);
\draw [gray, dashed] (v4)--(v1);

\end{tikzpicture}

但是如果您不能简单地计算(v3)和(v4),您该怎么办,例如(v1)=(-5,3)和(v2)=(2,1)。

答案1

欢迎来到 TeX.SE!!!

使用 Ti 非常容易Zcalc库。使用它,您可以为该任务创建一个宏。类似于以下示例:

\documentclass[tikz,border=2mm]{standalone}
\usetikzlibrary{calc}

\newcommand{\myrectangle}[2]
{
  \coordinate (aux1) at ($(#1)!1cm!90:(#2)$);
  \coordinate (aux2) at ($(#2)!1cm!-90:(#1)$);
  \draw[gray, dashed] (#1) -- (aux1);
  \draw[gray, dashed] (#2) -- (aux2);
  \draw (#1) -- (#2);
  \draw[green] (aux1) -- (aux2);
  \foreach\i in {(#1),(#2),(aux1),(aux2)}
    \filldraw \i circle [radius=1pt];
}

\begin{document}
\begin{tikzpicture}
\coordinate (v1) at (-3, 0);
\coordinate (v2) at (3,0);

\myrectangle{v1}{v2}
\myrectangle{2,3}{5,-1}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容