如何计算计算线段中点的坐标?

如何计算计算线段中点的坐标?
\documentclass[12pt]{scrartcl}
\usepackage{pgfplots}
\usepackage{tikz}
\usetikzlibrary{calc}  

\begin{document}

\begin{tikzpicture}

  \coordinate (a) at (-2,5);
  \coordinate (b) at (-2,0);
  \coordinate (c) at (2,0);
  \coordinate (d) at (2,5);

  \draw (a) -- (b) -- (c) -- (d);

  \draw[fill=gray] ([yshift=-0.5cm]$(a)!0.3!(b)$) rectangle ($(d)!0.3!(c)$);
  
  \draw[->] ([yshift=-0.2cm]$(a)!0.3!(b) + (a)!0.5!(d)$) -- ++(0,-2);

\end{tikzpicture}

\end{document}

在此处输入图片描述

我想从灰色矩形的中间绘制一个矢量。但我的计算是错误的。如果不为 (a)!0.3!(b) 和 (d)!0.3!(c) 定义特殊坐标,然后计算它们之间的中间点,我该怎么做?

答案1

pos=0.5或者midway也适用于矩形。

\documentclass[12pt]{scrartcl}
\usepackage{tikz}
\usetikzlibrary{calc}  

\begin{document}

\begin{tikzpicture}

  \coordinate (a) at (-2,5);
  \coordinate (b) at (-2,0);
  \coordinate (c) at (2,0);
  \coordinate (d) at (2,5);

  \draw (a) -- (b) -- (c) -- (d);

  \draw[fill=gray] ([yshift=-0.5cm]$(a)!0.3!(b)$) rectangle
  coordinate[pos=0.5] (M)  ($(d)!0.3!(c)$);
  
  \draw[<-] (M) -- ++ (0,2);
  %\draw[->] ([yshift=-0.2cm]$(a)!0.3!(b) + (a)!0.5!(d)$) -- ++(0,-2);
  
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容