修剪 TikZ 网格

修剪 TikZ 网格

我有以下图片:

在此处输入图片描述

从...获取:

\begin{tikzpicture}
\draw (0,0) grid (4,4);
\draw[invmidarrow=0.5]
(0,0) to[out=110,in=250] (0,2)
(0,2) to[out=70,in=190] (1,4)
(1,4) to[out=10,in=170] (3,4)
(3,4) to[out=-10,in=180] (4,4)
(4,4) to[out=0.in=45] (4,3)
(4,3) to[out=225,in=135] (4,2)
(4,2) to[out=-45,in=190] (4,1)
(4,1) to[out=-10,in=-10] (3,0)
(3,0) to[out=190,in=290] (0,0);
\end{tikzpicture}

具有以下关键定义:

\tikzset{invmidarrow/.style={postaction=decorate,decoration={markings,mark={at position #1 with {\arrow{latex reversed}}}}}}

并使用decorations.markings图书馆。我想知道是否有简单的方法可以:

  1. 修剪并延伸网格,使其仅填充曲线;
  2. 在网格中添加箭头,使得所有(或部分)方块都有逆时针箭头;
  3. 每隔 x*(曲线长度)在曲线上添加箭头,x 是我可以选择的分数。

该图出自物理笔记,老师从电场旋度为零推导出电场的保守性,并说明了我们这样做的过程,将线积分变成线积分之和,然后变成旋度在单个方块上的面积分,想象旋度会变得越来越小。

梅威瑟:

\documentclass[a4paper]{report}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\tikzset{invmidarrow/.style={postaction=decorate,decoration={markings,mark={at position #1 with {\arrow{latex reversed}}}}}}

\begin{document}

\begin{tikzpicture}
\draw (0,0) grid (4,4);
\draw[invmidarrow=0.5]
(0,0) to[out=110,in=250] (0,2)
(0,2) to[out=70,in=190] (1,4)
(1,4) to[out=10,in=170] (3,4)
(3,4) to[out=-10,in=180] (4,4)
(4,4) to[out=0.in=45] (4,3)
(4,3) to[out=225,in=135] (4,2)
(4,2) to[out=-45,in=190] (4,1)
(4,1) to[out=-10,in=-10] (3,0)
(3,0) to[out=190,in=290] (0,0);
\end{tikzpicture}
\end{document}

答案1

你想要这样的东西吗?

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\tikzset{invmidarrow/.style={postaction=decorate,decoration={markings,mark={between positions 0 and 1 step #1
with {\arrow{latex reversed}}}}}}
\begin{document}
\begin{tikzpicture}
\begin{scope}
\draw [clip]
(0,0) to[out=110,in=250] 
(0,2) to[out=70,in=190]
(1,4) to[out=10,in=170] 
(3,4) to[out=-10,in=180]
(4,4) to[out=0.in=45]
(4,3) to[out=225,in=135]
(4,2) to[out=-45,in=190]
(4,1) to[out=-10,in=-10]
(3,0) to[out=190,in=290] (0,0);
\draw (-1,-1) grid (5,5);
\end{scope}
\draw [thick,invmidarrow=10mm]
(0,0) to[out=110,in=250] 
(0,2) to[out=70,in=190]
(1,4) to[out=10,in=170] 
(3,4) to[out=-10,in=180]
(4,4) to[out=0.in=45]
(4,3) to[out=225,in=135]
(4,2) to[out=-45,in=190]
(4,1) to[out=-10,in=-10]
(3,0) to[out=190,in=290] (0,0);
\draw[red,invmidarrow=5mm] (1,1) rectangle (3,3);
\end{tikzpicture}
\end{document}

编辑

推杆

\draw[red,invmidarrow=10mm] (1.5,1) -- (1,1) -- (1,3) -- (3,3) -- (3,1) -- cycle;

代替

\draw[red,invmidarrow=5mm] (1,1) rectangle (3,3);

我们得到

在此处输入图片描述

我们避免标记在顶点上。

相关内容