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);

point 에 명명된 coordinate node( node차원 없이) 을 생성합니다 . 수단 . , , ... 에 대한 특정 단위 변경이 필요한 경우 나중에 지점 (0,0,2)에 대한 참조가 로 수행됩니다 . 특정 좌표를 기억할 필요가 없습니다.1(x,y,z)=(0,0,2)22cmcmmmin(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);

좌표 1에서 4, 3까지 선을 그립니다 dashed. 다음으로 좌표 4에 펜을 놓고 좌표 8에 또 다른 선을 그립니다.

nodes( 노드)를 사용하여 coordinates다른 노드를 배치할 수 있습니다. JLDiaz는 자신의 의견에서 구문을 사용하는 방법 calc(서문에 \usetikzlibrary{calc} 필요)을 설명했습니다.

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

17"(1)에서 거리의 50%에 있는 선 (1)-(5)의 점"에 새 좌표를 정의합니다 (!.5!는 50%를 의미함). 정의한 좌표를 다시 적용하여 원과 라벨을 그릴 17수 있습니다 .\fill (17) circle (1pt) node [left] {17};

대체 구문은 다음과 같습니다.

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

이는 이 경로에서 17이라는 좌표 노드를 배치한다는 의미입니다 . 1이 구문은 라이브러리를 사용하지 않습니다 .5pos=0.5calc

연습으로: 당신은 무엇을 생각합니까 \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}

여기에 이미지 설명을 입력하세요

관련 정보