Tikz zeichnet einen Kreisabschnitt, der von der x-Achse und der horizontalen Linie umschlossen ist

Tikz zeichnet einen Kreisabschnitt, der von der x-Achse und der horizontalen Linie umschlossen ist

Ich bin neu bei Tikz und möchte den folgenden schattierten Bereich zeichnen, der von der Linie y = 1, der x-Achse und dem durch x^2 + y^2 <= 2 definierten Kreis umschlossen wird. Die folgende Abbildung zeigt das gewünschte Ergebnis. Wie mache ich das?

Was ich in Tikz will

Antwort1

Im Allgemeinen würde ich empfehlen, den Rat von Tobi zu befolgen, aber das hier ist ziemlich einfach, also werde ich trotzdem antworten. Ich möchte auch darauf hinweisen, dass, wenn Sie sich die Tutorials am Anfang desTikZ-Handbuch, würde ich das empfehlen. Im ersten davon (Kapitel 2) erfahren Sie alles, was Sie zum Erstellen eines solchen Diagramms benötigen.


Das Zeichnen der Achsen sollte kein Problem sein, denke ich, es sind nur zwei gerade Linien.

Der abgeschnittene Kreis besteht aus zwei Bögen und zwei Geraden. Um einen Bogen zu zeichnen, können Sie verwenden

arc[start angle=<degrees>, end angle=<degrees>, radius=<length>]

Dadurch wird der Kreisteil von bis gegen den Uhrzeigersinn gezeichnet start angle. end angle(Sie können auch tun arc[start angle=<degrees>, delta angle=<degrees>, radius=<length>], wobei delta angledie Bogenlänge in Grad angibt.)

Nehmen wir an, Sie beginnen mit dem Zeichnen am äußersten rechten Punkt des Kreises. Sie wissen, dass das bei ist (2,0), also beginnen Sie mit

\draw (2,0) ...

Sie möchten unterhalb dieses Punktes eine Beschriftung hinzufügen. Diese kann zwar auch später hinzugefügt werden, aber in diesem Fall ist es vielleicht genauso praktisch, sie gleichzeitig hinzuzufügen. Text wird mit folgendem hinzugefügt node [<options>] {<text>}:

\draw (2,0) node[below] {2} ...

(Wenn Sie Knoten separat hinzufügen, können Sie dies tun \node [<options>] at (<coordinate>) {<text>};.)

Von dort aus möchten Sie einen Bogen zeichnen, der 30 Grad abdeckt (weil sin(30) = 0,5), beginnend bei einem Winkel von Null. Befolgen Sie das oben Gesagte:

\draw (2,0) node[below] {2} 
       arc[start angle=0, end angle=30, radius=2] node[right] {1}...

wo ich auch rechts vom Endpunkt dieses Bogens eine Beschriftung hinzugefügt habe.

Der nächste Teil besteht darin, eine gerade Linie zu zeichnen, die dorthin führt, wo der linke Bogen beginnt. Sie können die x/y-Koordinaten entweder manuell oder direkt in der Koordinate berechnen, aber es ist bequemer, Polarkoordinaten zu verwenden, die wie folgt angegeben werden (<angle> : <radius>):

  \draw (2,0) node[below] {2}
        arc[start angle=0, end angle=30, radius=2] node[right] {1}
        -- (150:2) ...

Jetzt zeichnen Sie einfach den zweiten Bogen, fügen ein nodefür die Beschriftung hinzu und ziehen schließlich eine gerade Linie zurück zum Startpunkt. Wenn Sie geschlossene Pfade zeichnen, verwenden Sie statt der Wiederholung der ersten Koordinate 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;

\drawallein ergibt nur eine schwarze Linie, aber Sie können die Farbe angeben und die Optionen ausfüllen:

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

(Die Verwendung von „ \filldrawstattdessen“ \drawist nicht unbedingt erforderlich, wenn in diesem Fall sowohl „als auch“ angegeben wird fill=<color>. draw=<color>)

Bildbeschreibung hier eingeben

\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}

Antwort2

Eine Antwort mit tkz-euclide wurde hinzugefügt

Bildbeschreibung hier eingeben

\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}

verwandte Informationen