如何在 Tikz 中通过给定四个点绘制网格?

如何在 Tikz 中通过给定四个点绘制网格?

如果正方形没有旋转,则很容易在正方形上绘制网格。但是对于旋转的正方形,我很难对其进行网格划分。我想通过给定的四个点来对正方形进行网格划分。例如以下四个点:

A(-3,0),B(-2,5),C(-5,3),D(0,2)。

任何建议都将不胜感激。

答案1

一种可能性是使用calc库和循环。

在此处输入图片描述

\documentclass[border=10pt,tikz]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (3,1);
\coordinate (C) at (2,4);
\coordinate (D) at (-1,3);


\foreach [evaluate=\i as \x using \i/10] \i in {0,...,10} 
{
  \draw ($(A)!\x!(B)$) -- ($(D)!\x!(C)$);
  \draw ($(A)!\x!(D)$) -- ($(B)!\x!(C)$);
}
\end{tikzpicture}
\end{document}

答案2

暴力破解,无需calc

\documentclass{article}

\usepackage{tikz}


\begin{document}



\begin{tikzpicture}
\foreach \t in {0,1,...,10}
  {
   \draw({-3+\t*(-5-(-3))/10},{0+\t*(3-0)/10})--({0+\t*(-5-(-3))/10},{2+\t*(3-0)/10});
   \draw({-3+\t*(0-(-3))/10},{0+\t*(2-0)/10})--({-5+\t*(3-0)/10},{3+\t*(2-0)/10});
  }
\end{tikzpicture}
\end{document}

相关内容