Проблема при генерации кода Tikz на Geogebra: полукруг смещен

Проблема при генерации кода Tikz на Geogebra: полукруг смещен

Вот что я нарисовал в Geogebra:

введите описание изображения здесь

Вот код, который я получаю при экспорте файла Tikz из Geogebra:

\definecolor{ududff}{rgb}{0.30196078431372547,0.30196078431372547,1}
\begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1cm,y=1cm]
\begin{axis}[
x=1cm,y=1cm,
axis lines=middle,
ymajorgrids=true,
xmajorgrids=true,
xmin=-4.370038701302235,
xmax=4.373881990999934,
ymin=-0.5693858009107018,
ymax=5.2038438869554735,
xtick={-4,-3,...,4},
ytick={0,1,...,5},]
\clip(-4.370038701302235,-0.5693858009107018) rectangle (4.373881990999934,5.2038438869554735);
\draw [line width=2pt] (-3,1)-- (3,1);
\draw [shift={(0,1)},line width=2pt]  plot[domain=0:3.141592653589793,variable=\t]({1*3*cos(\t r)+0*3*sin(\t r)},{0*3*cos(\t r)+1*3*sin(\t r)});
\begin{scriptsize}
\draw [fill=ududff] (-3,1) circle (0.5pt);
\draw [fill=ududff] (3,1) circle (0.5pt);
\end{scriptsize}
\end{axis}
\end{tikzpicture}

Вот что я получаю, вставляя это в свой документ Latex:

Почему у меня это? Как это исправить? Я пробовал несколько раз...

решение1

Единственная проблема в том, что команда shift не объявляет unit cm, (например shift={(0cm,1cm)}). Следующий код должен работать:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\usepackage{xcolor}
\definecolor{ududff}{rgb}{0.30196078431372547,0.30196078431372547,1}

\begin{document}
\begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1cm,y=1cm]
\begin{axis}[
x=1cm,y=1cm,
axis lines=middle,
ymajorgrids=true,
xmajorgrids=true,
xmin=-4.370038701302235,
xmax=4.373881990999934,
ymin=-0.5693858009107018,
ymax=5.2038438869554735,
xtick={-4,-3,...,4},
ytick={0,1,...,5},]
\clip(-4.370038701302235,-0.5693858009107018) rectangle (4.373881990999934,5.2038438869554735);
\draw [line width=2pt] (-3,1)-- (3,1);
% The shift command has changed
\draw [shift={(0cm,1cm)},line width=2pt]  plot[domain=0:3.141592653589793,variable=\t]({1*3*cos(\t r)+0*3*sin(\t r)},{0*3*cos(\t r)+1*3*sin(\t r)});
\begin{scriptsize}
\draw [fill=ududff] (-3,1) circle (0.5pt);
\draw [fill=ududff] (3,1) circle (0.5pt);
\end{scriptsize}
\end{axis}
\end{tikzpicture}

\end{document}

введите описание изображения здесь

Связанный контент