%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%20edge%3F.png)
TikZ를 사용하여 어린이를 위한 분수 다이어그램을 만들려고 합니다.
표시하고 싶을 때 크기가 조정되는 방식으로 이 1/2 다이어그램의 상단을 수정하는 우아한 방법이 있습니까? 예를 들어 29/6을 삼각형으로 표시하고 결국에는 다른 모양으로 표시할 수 있습니까? 90도가 아닌 각도에서 만나는 경로의 교차점이 내가 원하는 방식으로 교차하지 않는 것 같습니다...
\documentclass{article}
\usepackage{tikz}
\usepackage{xcolor}
\begin{document}
\(\frac{1}{2}\)
\begin{tikzpicture}
\filldraw[fill=gray, draw=black, thick] (0,0)--(1,0)--(1,2)--cycle;
\draw[thick] (1,0)--(2,0)--(1,2)--cycle;
\end{tikzpicture}
\end{document}
답변1
이것이 당신이 원하는 것인지 확실하지 않지만 링크된 이미지를 보면 그런 것 같습니다. 나는 다음에서 일부 코드를 빌렸습니다.Ignasi's answer
에게TikZ에서 삼각형 그리드를 그리는 방법은 무엇입니까?. 삼각형 그리드는 \node
s로 만들어졌으므로 앵커를 사용하여 레이어에 배치한 채우기 작업을 쉽게 수행할 수 있습니다 background
.
코드:
\documentclass[tikz,border=2mm]{standalone}
\usetikzlibrary{shapes,backgrounds}
\newcommand\grid[1]{
\foreach \i [count=\row from 0, remember=\row as \lastrow (initially 0)] in {0,...,#1}
{
\foreach \j [count=\column from 0, remember=\column as \lastcolumn (initially 0)] in {0,...,\i}
{
\ifnum\row=0
\node[tri](0-0) {};
\else
\ifnum\column=0
\node[tri, anchor=north](\row-0) at (\lastrow-0.corner 2) {};
\else
\node[tri, anchor=north](\row-\column) at (\lastrow-\lastcolumn.corner 3) {};
\fi
\fi
}
}
}
\begin{document}
\begin{tikzpicture}[
tri/.style={
draw,
regular polygon,
regular polygon sides=3,
minimum size=2cm,
inner sep=0pt,
outer sep=0pt,
line width=1pt
}
]
\grid{3}
\begin{pgfonlayer}{background}
\filldraw[cyan!30]
(0-0.corner 1) --
(3-3.corner 3) --
(3-0.corner 2) --
cycle;
\end{pgfonlayer}
\begin{scope}[xshift=8cm]
\grid{3}
\begin{pgfonlayer}{background}
\filldraw[cyan!30]
(3-0.corner 1) --
(3-3.corner 1) --
(3-3.corner 3) --
(3-0.corner 2) --
cycle;
\end{pgfonlayer}
\end{scope}
\begin{scope}[yshift=-8cm]
\grid{3}
\begin{pgfonlayer}{background}
\filldraw[cyan!30]
(2-0.corner 1) --
(2-2.corner 1) --
(3-1.corner 3) --
cycle;
\end{pgfonlayer}
\end{scope}
\begin{scope}[xshift=8cm,yshift=-8cm]
\grid{3}
\begin{pgfonlayer}{background}
\filldraw[cyan!30]
(0-0.corner 1) --
(3-1.corner 3) --
(3-0.corner 2) --
cycle;
\end{pgfonlayer}
\draw[line width=1pt]
(0-0.corner 1) -- (3-1.corner 3);
\end{scope}
\end{tikzpicture}
\end{document}
답변2
한 가지 방법은 먼저 칠한 다음 단일 경로를 그리는 것입니다.
\documentclass[tikz,border=10pt]{standalone}
\begin{document}
\begin{tikzpicture}
\fill [fill=gray] (0,0)--(1,0)--(1,2)--cycle;
\draw[thick] (0,0) -- (1,2) edge (1,0) -- (2,0) -- cycle;
\end{tikzpicture}
\end{document}
은(는) 무엇입니까 edge
?
An은 edge
다른 방향으로 나갈 수 있고 기본 경로와 완전히 다른 옵션으로 그려질(또는 그려지지 않을) 수 있는 독립적인 경로 비트입니다. 기본 경로를 방해하지 않습니다. 이 경우 에서는 수직선을 아래로 그리지만 기본 경로는 마치 정점이 지정되지 edge
않은 것처럼 정점에서 계속됩니다 . s는 특히 복잡한 경로에 유용합니다. 이는 기본 경로 다음에 구성됩니다.edge
edge
무슨 일이 일어나고 있는지 확인하려면 다음과 같이 경로 사양을 변경하세요.
\draw[thick] (0,0) -- (1,2) edge [red] (1,0) -- (2,0) -- cycle;
기본적으로 는 edge
기본 경로에서 옵션을 상속하므로 이 경로는 thick
기본 경로와 달리 입니다 red
. 물론 위 이미지에서는 별도의 옵션이 지정되지 않았으므로 이 edge
역시 기본 색상이었으며 기본 경로와 혼합되었습니다.