
Respuesta1
En general recomendaría seguir los consejos dados por Tobi, pero esto es bastante sencillo, así que responderé de todos modos. También señalaré que si no has mirado los tutoriales al comienzo delmanual de tikz, recomendaría hacerlo. El primero de ellos (capítulo 2) te enseñará todo lo necesario para hacer un diagrama como ese.
Supongo que dibujar los ejes no debería ser un problema, son solo dos líneas rectas.
El círculo cortado consta de dos arcos y dos líneas rectas. Para dibujar un arco puedes usar
arc[start angle=<degrees>, end angle=<degrees>, radius=<length>]
que dibujará en sentido antihorario la parte de un círculo desde start angle
hasta end angle
. (También puedes hacer arc[start angle=<degrees>, delta angle=<degrees>, radius=<length>]
, donde delta angle
indica la longitud del arco en grados).
Digamos que comienzas a dibujar en el punto más a la derecha del círculo. Sabes que es en (2,0)
, entonces comienzas con
\draw (2,0) ...
Desea agregar una etiqueta debajo de este punto y, si bien se puede agregar más tarde, en este caso podría ser igual de conveniente agregarla al mismo tiempo. El texto se agrega usando node [<options>] {<text>}
:
\draw (2,0) node[below] {2} ...
(Si agrega nodos por separado, puede hacerlo \node [<options>] at (<coordinate>) {<text>};
).
A partir de ahí, desea dibujar un arco que cubra 30 grados (porque sin(30) = 0,5), comenzando en un ángulo de cero. Siguiendo lo dicho anteriormente:
\draw (2,0) node[below] {2}
arc[start angle=0, end angle=30, radius=2] node[right] {1}...
donde también agregué una etiqueta a la derecha del punto final de ese arco.
La siguiente parte es dibujar una línea recta hasta donde comienza el arco izquierdo. Si bien puedes calcular las coordenadas x/y, ya sea manualmente o directamente en la coordenada, es más conveniente usar coordenadas polares, que se especifican con (<angle> : <radius>)
:
\draw (2,0) node[below] {2}
arc[start angle=0, end angle=30, radius=2] node[right] {1}
-- (150:2) ...
Ahora simplemente dibuja el segundo arco, agrega una node
para la etiqueta y, finalmente, una línea recta de regreso al inicio. Al dibujar trazados cerrados, en lugar de repetir la primera coordenada, utilice cycle
:
\draw (2,0) node[below] {2}
arc[start angle=0, end angle=30, radius=2] node[right] {1}
-- (150:2)
arc[start angle=150, end angle=180, radius=2] node[below] {2}
-- cycle;
\draw
solo te da solo una línea negra, pero puedes especificar el color y completar las opciones:
\filldraw [
fill=brown!80!black,
draw=red,
very thick
]
(2,0) node[below] {2}
arc[start angle=0, end angle=30, radius=2] node[right] {1}
-- (150:2)
arc[start angle=150, end angle=180, radius=2] node[below] {2}
-- cycle;
(Usar \filldraw
en lugar de \draw
no es estrictamente necesario cuando se especifican ambos fill=<color>
y draw=<color>
como en este caso).
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\path [
fill=brown!80!black,
draw=red,
very thick
]
(2,0) node[below] {2}
arc[start angle=0, end angle=30, radius=2] node[right] {1}
-- (150:2)
arc[start angle=150, end angle=180, radius=2] node[below] {2}
-- cycle;
\draw [thick] (-3,0) -- (3,0);
\draw [thick] (0,-2) -- (0,2);
\end{tikzpicture}
\end{document}
Respuesta2
Se agrega una respuesta con tkz-euclide
\documentclass{article} % or another class
\usepackage{xcolor} % before tikz or tkz-euclide if necessary
\usepackage{tkz-euclide} % no need to load TikZ
\usetikzlibrary{babel} %if there are problems with the active characters
\begin{document}
\begin{tikzpicture}
%define the origin O -- radius A
\tkzDefPoint(0,0){O}
\tkzDefPoint(1.41,0){A}
\tkzDrawPoints(O,A)
\tkzLabelPoints[below](O,A)
%draw the semicircle
\tkzDefPointBy[rotation= center O angle 180](A)
\tkzGetPoint{B}
\tkzDrawArc[line width=0.1pt, white](O,A)(B)
\tkzLabelPoints[below](B)
%draw the line at y=1
\tkzDefPoint(1,0){A'}
\tkzDefPoint(-1,0){B'}
\tkzDefShiftPoint[A'](90:1){A''}
\tkzDefShiftPoint[B'](90:1){B''}
\tkzDrawSegment[red,line width=1pt](A'',B'')
%draw the arc perimeter line
\tkzDrawArc[red,line width=1pt](O,A)(A'')
\tkzDrawArc[red,line width=1pt](O,B'')(B)
%color the fill inside
\fill[red!40] (-1,0) rectangle (1,1);
\tkzFillSector[rotate,color=red!40](O,A)(45)
\tkzFillSector[rotate,color=red!40](O,B)(-45)
%draw the center axis -horizontal and vertical
\tkzDrawLine(A,B)
\tkzDefLine[orthogonal =through O](B,A)\tkzGetPoint{X}
\tkzDrawLine(O,X)
\end{tikzpicture}
\end{document}