
\begin{tikzpicture}
\coordinate (1) at (0,0);
\coordinate (2) at (2,0);
\coordinate (3) at (2,2);
\coordinate (4) at (0,2);
\coordinate (5) at (0,0);
\coordinate (6) at ($(1)!.5!(2)$);
\coordinate (7) at ($(2)!.5!(3)$);
\coordinate (8) at ($(3)!.5!(4)$);
\coordinate (9) at ($(4)!.5!(1)$);
\foreach \i in {1,2}
\fill (\i) circle (1pt) node [below] {\tiny \i};
\foreach \i in {3,4}
\fill (\i) circle (1pt) node [above] {\tiny \i};
\foreach \i in {6}
\fill (\i) circle (1pt) node [below] {\tiny 5};
\foreach \i in {7}
\fill (\i) circle (1pt) node [right] {\tiny 6};
\foreach \i in {8}
\fill (\i) circle (1pt) node [above] {\tiny 7};
\foreach \i in {9}
\fill (\i) circle (1pt) node [left] {\tiny 8};
\draw (1)--(2)--(3)--(4)--(5);
\end{tikzpicture}
위의 오른쪽 정사각형 코드에서 왼쪽 정사각형 점(9)에 있는 중간점을 만들고 싶습니다.
답변1
경로 형식에서 까지 의 점을 나타내는 를 (9)
통해 점의 중간 방향을 계산할 수 있습니다 . 나는 또한 그것을 하나로 줄였습니다 .(1)!0.5!(3)
0.5
(1)
(3)
\foreach
암호:
documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\coordinate (1) at (0,0);
\coordinate (2) at (2,0);
\coordinate (3) at (2,2);
\coordinate (4) at (0,2);
\coordinate (5) at ($(1)!.5!(2)$);
\coordinate (6) at ($(2)!.5!(3)$);
\coordinate (7) at ($(3)!.5!(4)$);
\coordinate (8) at ($(1)!.5!(4)$);
\coordinate (9) at ($(1)!.5!(3)$);
\foreach \i/\Position in {1/below, 2/below, 3/above, 4/above, 5/below, 6/right, 7/above, 8/left, 9/above right} {
\fill (\i) circle (1pt) node [\Position] {\tiny \i};
}
\draw (1)--(2)--(3)--(4)-- cycle;
\end{tikzpicture}
\end{document}
답변2
직교 좌표를 사용할 수도 있습니다.
\coordinate (9) at (8-|5); %%% <--- new
(8-|5)
y
노드의 좌표와 동일한 좌표 (8)
와 노드 (5)의 좌표와 같은 x 좌표 를 취함을 의미합니다 .
또한 \foreach
루프를 다듬을 수도 있습니다.
\documentclass[tikz,varwidth]{standalone}%
\usetikzlibrary{calc,positioning}
\begin{document}
\begin{tikzpicture}
\coordinate (1) at (0,0);
\coordinate (2) at (2,0);
\coordinate (3) at (2,2);
\coordinate (4) at (0,2);
\coordinate (5) at ($(1)!.5!(2)$);
\coordinate (6) at ($(2)!.5!(3)$);
\coordinate (7) at ($(3)!.5!(4)$);
\coordinate (8) at ($(4)!.5!(1)$);
\coordinate (9) at (8-|5); %%% <--- new
\foreach \i/\position in {1/below,2/below,3/above,4/above,5/below,6/right,7/above,8/left,9/above right}
\fill (\i) circle (1pt) node [\position] {\tiny \i};
\draw (1)--(2)--(3)--(4)--cycle;
\end{tikzpicture}
\end{document}
또 다른 간단한 방법은 직사각형 노드를 사용하는 것입니다.
\documentclass[tikz,varwidth]{standalone}%
\usetikzlibrary{calc,positioning}
\begin{document}
\begin{tikzpicture}
\node[draw,minimum height=2cm,minimum width=2cm] (a) at (1,1) {};
\foreach \i/\a/\position in
{south west/1/below,south east/2/below,north east/3/above,north west/4/above,
south/5/below,east/6/right,north/7/above,west/8/left,center/9/above right} {%
\fill (a.\i) circle (1pt) node [\position] {\tiny \a};
}
\end{tikzpicture}
\end{document}