
Estoy intentando crear diagramas de fracciones para niños usando TikZ.
¿Existe una manera elegante de arreglar la parte superior de este diagrama de 1/2 de manera que se escale cuando quiera mostrar, digamos 29/6 con triángulos... y eventualmente otras formas? Parece que las intersecciones de caminos que se encuentran en ángulos que no son de 90 grados no se cruzan del todo como yo quiero...
\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}
Respuesta1
No estoy seguro de si esto es lo que quieres, pero mirando la imagen vinculada, parece ser así: tomé prestado un código deIgnasi's answer
a¿Cómo dibujar una cuadrícula triangular en TikZ?. Dado que la cuadrícula triangular está construida con \node
s, puedes usar fácilmente sus anclajes para hacer el relleno, que coloqué en la background
capa:
El código:
\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}
Respuesta2
Una forma es llenar primero y luego dibujar un único camino:
\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}
¿Qué es un edge
?
An edge
es un tramo de camino independiente que puede tomar una dirección diferente y puede dibujarse (o no) con opciones completamente diferentes a las del camino principal. No interrumpe el camino principal. En este caso, edge
dibuja la perpendicular hacia abajo, pero el camino principal continúa desde el vértice como si no edge
se hubiera especificado. edge
Los s son útiles para rutas complejas, especialmente. Se construyen después del camino principal.
Para ver qué está pasando, cambie la especificación de la ruta de la siguiente manera:
\draw[thick] (0,0) -- (1,2) edge [red] (1,0) -- (2,0) -- cycle;
De forma predeterminada, edge
hereda las opciones de la ruta principal, por lo que esta es thick
pero, a diferencia de la ruta principal, es red
. En la imagen de arriba, por supuesto, no se especificaron opciones distintas, por lo que edge
también era el color predeterminado y se mezclaba con la ruta principal.