Хотите создать следующую функцию формы в TikZ?

Хотите создать следующую функцию формы в TikZ?

Хотите, чтобы следующие фигуры функционировали в TikZ?введите описание изображения здесь

\begin{tikzpicture}
\tikzstyle{every node}=[draw,shape=circle];
\draw (0,0)  --   (0,1)  node {1};
\draw (0,1)  --   (1,1)  node {2};
\draw (1,1)  --   (1,0)  node {3};
\draw (1,0) --    (0,0)  node {4};
\end{tikzpicture}
\begin{tikzpicture}
\tikzstyle{every node}=[draw,shape=circle];
\draw (0,0)  -- ++  (1,1)  node {1};
\draw (1,1)  -- ++  (1,-1) node {2};
\draw (0,0)  --  ++ (2,0)  node {3};
\end{tikzpicture}

решение1

Постарайтесь понять этот код, и вы будете знать, как нарисовать их все.

Начнем с определения координат.

\coordinate (1) at (0,0,2);

создает coordinate node( nodeбез измерений) с именем 1в точке (x,y,z)=(0,0,2). 2означает 2cm. Если вам нужно изменить некоторые конкретные единицы cmна mm, in, ... Позже ссылка на точку (0,0,2) будет сделана с помощью (1). Нет необходимости запоминать ее конкретные координаты.

Во-вторых, разместите круги в каждой координате и добавьте к ним метки.

    \fill (1) circle (1pt) node [below] {1};

нарисует и заполнит круг с радиусом 1pt(1 точка) с центром в координате 1. Под ним размещается узел с текстом 1. Поскольку точки с 1 по 4 имеют метку снизу, а с 5 по 8 — сверху, можно использовать цикл foreach.

Наконец, drawлинии между координатами:

\draw[dashed] (1)--(4)--(3) (4)--(8);

рисует dashedлинию от координаты 1 до 4 и 3. Затем помещает ручку на координату 4 и рисует еще одну линию до координаты 8.

Вы можете использовать nodes( coordinatesявляющиеся узлами) для позиционирования других узлов. JLDiaz объяснил в своих комментариях, как использовать calcсинтаксис (нужен \usetikzlibrary{calc} в преамбуле), чтобы сделать это:

\coordinate (17) at ($(1)!.5!(5)$);

определяет новую координату 17для «точки на линии (1)-(5), которая находится на 50% расстояния от (1)» (!.5! означает, что 50%). После того, как вы определили координаты, 17вы можете применить их снова \fill (17) circle (1pt) node [left] {17};, чтобы нарисовать круг и метку.

Альтернативный синтаксис может быть таким:

\path (1) -- (5) coordinate[pos=0.5] (17);

что означает перемещение из 1в 5и pos=0.5из этого пути, размещение координатного узла с именем 17. Этот синтаксис не использует calcбиблиотеку.

В качестве упражнения: как вы думаете, что \coordinate (27) at ($(1)!.5!(7)$);это значит?

Перед полным кодом небольшое предложение. Если вас пугает TiKZогромная документация, взгляните на некоторые из документов, рекомендованных в

Теперь полный код

\documentclass[tikz, border=2mm]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}

\coordinate (1) at (0,0,2);
\coordinate (2) at (2,0,2);
\coordinate (3) at (2,0,0);
\coordinate (4) at (0,0,0);
\coordinate (5) at (0,2,2);
\coordinate (6) at (2,2,2);
\coordinate (7) at (2,2,0);
\coordinate (8) at (0,2,0);

\coordinate (17) at ($(1)!.5!(5)$);
\coordinate (27) at ($(1)!.5!(7)$);

\foreach \i in {1,...,4}
    \fill (\i) circle (1pt) node [below] {\i};

\foreach \i in {5,...,8}
    \fill (\i) circle (1pt) node [above] {\i};

\fill (17) circle (1pt) node [left] {17};
\fill (27) circle (1pt) node [above] {27};

\draw (1) --(2) --(3) --(7) --(6)--(5)--(8)--(7);
\draw (1)--(5) (2)--(6);
\draw[dashed] (1)--(4) --(3) (4)--(8);

\end{tikzpicture}
\end{document}

введите описание изображения здесь

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