悠闲数学娱乐论坛(第2版)'s Archiver

abababa 发表于 2021-8-1 10:15

请教蛇形直线要怎么画

[i=s] 本帖最后由 abababa 于 2021-8-1 10:17 编辑 [/i]

[attach]10245[/attach]

如图,我先用[code]\foreach \i in {0,...,6} {
        \draw[color=OliveGreen] (0,\i) -- (6,\i);
        \draw[color=OliveGreen] (\i,0) -- (\i,6);
}[/code]画了方格,然后想画图中的蛇形线,从左上角画到右下角那样,每个转弯的点都是方格的中心。这只是个示例,实际要画的是8*8,16*16两种方格,有没有简单一点的方法?

首先我想把方格都平移0.5单位,这样蛇形线的转弯点就都是整数了,可能会方便一点,但这个也还没想明白怎么做。

kuing 发表于 2021-8-1 15:02

[code]\documentclass{article}
\usepackage{tikz}
\begin{document}
\tikz[x=0.5cm,y=0.5cm,line cap=round]{\def\n{8}
\draw (0,0) grid[step=1] (\n,-\n);
\foreach \i in {2,...,\n} {
\draw[line width=2pt] (\i-0.5,-0.5)--(0+0.5,-\i+0.5)
(\n-\i+0.5,-\n+0.5)--(\n-0.5,-\n+\i-0.5);
}
\draw[line width=2pt,dash pattern=on 0.5cm off 0.5cm]
(0.5,-0.5)--++(\n-1,0)--++(0,-\n+1)--++(-\n+1,0)--cycle;
}
\end{document}[/code]改 16*16 只需改 \def\n{8} 为 16,奇数亦可;
改方格大小则需改前面的“x=...,y=...”以及后面的“=on ... off ...”两处。

abababa 发表于 2021-8-1 15:26

[b]回复 [url=http://kuing.orzweb.net/redirect.php?goto=findpost&pid=40645&ptid=8116]2#[/url] [i]kuing[/i] [/b]

谢谢,果然好用,太好了。

原来是那些直线和斜线分开画的,我还想怎么让它到哪个点拐弯。

kuing 发表于 2021-8-1 15:29

这画法是有点取巧,是先画斜线,再连接端点,在连接时,由于总是相间的,相当于虚线,所以我就画虚线并将间隔设为方格长度,就OK了,完全不用管奇偶什么的。

abababa 发表于 2021-8-1 15:38

[b]回复 [url=http://kuing.orzweb.net/redirect.php?goto=findpost&pid=40650&ptid=8116]4#[/url] [i]kuing[/i] [/b]

版主要是不说,我还没发现这一点,原来那个画的是虚线圈,我在最后看有一个cycle,知道是闭的,一时还没发觉原来是虚线闭圈。

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.