РЕДАКТИРОВАТЬ

РЕДАКТИРОВАТЬ

Я хотел бы рисовать циклы (или многоугольные пути) с помощью TikZ. Я предоставляю код, в котором я пытаюсь сделать это с помощью прямоугольных координат и полярных координат. На первом рисунке, я думаю, цикл скрыт вспомогательными линиями. Второй рисунок нарисован не так, как я предполагал.

На обоих рисунках у меня есть пути на сетке. Я хотел сделать линии сетки в четверть толщины сегментов линий в циклах и светло-серыми. Я думаю, что толщина линий по умолчанию составляет TikZ0,4 пт; поэтому я думал, что спецификация line width=0.1ptсделает вспомогательные линии в четверть толщины циклов. Это не так. Я забыл, как сделать линии светло-серыми. (Я думал, что вспомогательные линии по умолчанию серые.)

\documentclass{amsart}
\usepackage{tikz}

\usetikzlibrary{intersections,decorations.pathreplacing,positioning}

\begin{document}

\begin{tikzpicture}
\draw (0,0) grid [xstep=0.5, ystep=0.5, line width=0.1pt,gray] (6,6);
\draw[line width=0.5pt] (4,1) -- ++(1,0) -- ++(0,3) -- ++(-2,0) -- cycle;
\end{tikzpicture}
\vskip0.25in

\begin{tikzpicture}
\draw (0,0) grid [xstep=0.5, ystep=0.5, line width=0.1pt,gray] (6,6);
\draw[line width=0.5pt] (1,1.5) -- ++(2:135) -- ++(1:135) -- ++(3:90) -- ++ (1:120) -- cycle;
\end{tikzpicture}
\end{document}

решение1

Параметры рисования необходимо передавать команде, \drawа не grid. (РЕДАКТИРОВАТЬ: какQrrbrbirlbel сказал первым.)

Полярные координаты указываются как (angle:distance). Но обратите внимание, что угол 135, скажем, всегда имеет одно и то же направление, поэтому первые два сегмента вашего пути идут в одном направлении:

(1,1.5) -- ++(135:2) -- ++(135:1) 

и

(1,1.5) -- ++(135:3)

эквивалентны.

Итак, частично исправленный код выглядит так:

\documentclass{amsart}
\usepackage{tikz}

\begin{document}

  \begin{tikzpicture}
    \draw [gray, line width=0.1pt] (0,0) grid [xstep=0.5, ystep=0.5] (6,6);
    \draw [line width=0.5pt] (4,1) -- ++(1,0) -- ++(0,3) -- ++(-2,0) -- cycle;
  \end{tikzpicture}
  \vskip0.25in

  \begin{tikzpicture}
    \draw [gray, line width=0.1pt] (0,0) grid [xstep=0.5, ystep=0.5] (6,6);
    \draw [line width=0.5pt] (1,1.5) -- ++(135:2) -- ++(135:1) -- ++(90:3) -- ++ (120:1) -- cycle;
  \end{tikzpicture}
\end{document}

но это, вероятно, не то, что вам нужно:

не совсем полигоны

Крупный план линий:

закрыть

РЕДАКТИРОВАТЬ

Библиотека shapes.geometricпозволяет вам легко рисовать такие объекты, как правильные многоугольники:

\documentclass[tikz,border=5pt]{standalone}

\usetikzlibrary{shapes.geometric}

\begin{document}

  \begin{tikzpicture}
    \draw [gray, line width=.1pt] (0,0) grid [xstep=0.5, ystep=0.5] (6,6);
    \node [shape=regular polygon, regular polygon sides=5, draw, minimum width=15mm] at (3,3) {};
  \end{tikzpicture}
\end{document}

правильный многоугольный узел

Однако, если это не подходит, вы можете попробовать следующее:

  \begin{tikzpicture}
    \draw [gray, line width=.1pt] (0,0) grid [xstep=0.5, ystep=0.5] (6,6);
    \begin{scope}[shift={(1,1.5)}]
      \draw [line width=0.5pt] ++(0:1) -- ++(72:1) -- ++(144:1) -- ++(216:1) -- ++ (288:1) -- cycle;
    \end{scope}
  \end{tikzpicture}

правильный многоугольник на сетке

ИЗМЕНИТЬ ИЗМЕНИТЬ

Или нерегулярно...

  \begin{tikzpicture}
    \draw [gray, line width=.1pt] (0,0) grid [xstep=0.5, ystep=0.5] (6,6);
    \begin{scope}[shift={(3,1.5)}]
      \draw [line width=0.5pt] ++(0:2) -- ++(72:1) -- ++(144:3) -- ++(216:2.5) -- ++ (288:.5) -- cycle;
    \end{scope}
  \end{tikzpicture}

неправильный выпуклый многоугольник

Связанный контент