
He estado intentando trazar dos funciones que representen una elipse rotada en coordenadas cartesianas. Sin embargo, el punto donde se encuentran estas dos curvas no parece que estén "unidas" o cerradas. ¿Hay alguna forma de arreglar esto? No sé por qué es esto.
Aquí está el código:
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}[scale=1]
\begin{axis}[ticks=none,
axis x line=middle,
axis y line=middle,
y axis line style={<->},
xlabel=$x$,
ylabel={$y$}
]
\addplot[-] expression[line width=0.4,smooth,samples=200,domain=0:49.999] {sqrt((1.38^(2.0)-0.5^(2.0))*(50.0*(x)-(x)^(2.0)))+0.5*(x)};
\addplot[-] expression[line width=0.4,smooth,samples=200,domain=0:49.999] {-sqrt((1.38^(2.0)-0.5^(2.0))*(50.0*(x)-(x)^(2.0)))+0.5*(x)};
\end{axis}
\end{tikzpicture}
\end{document}
Gracias por la ayuda,
Respuesta1
No sé exactamente por qué, pero supongo que es posible que tengas que ajustar el dominio correctamente. Aquí hay una solución alternativa (no elegante) al uso de shorten
.
\documentclass[border=4]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{tikzpicture}[scale=1]
\begin{axis}[ticks=none,
axis x line=middle,
axis y line=middle,
y axis line style={<->},
xlabel=$x$,
ylabel={$y$}
]
\addplot[shorten >= -0.5ex,smooth,line width=0.4pt,samples=300,domain=0:49.99999999999999999999] {sqrt((1.38^(2.0)-0.5^(2.0))*(50.0*(x)-(x)^(2.0)))+0.5*(x)};
\addplot[shorten >= -0.5ex,smooth,line width=0.4pt,samples=300,domain=0:49.99999999999999999999] {-sqrt((1.38^(2.0)-0.5^(2.0))*(50.0*(x)-(x)^(2.0)))+0.5*(x)};
\end{axis}
\end{tikzpicture}
\end{document}
Respuesta2
El gráfico también se puede realizar utilizando una variable de parámetro (t en el ejemplo). La ventaja es que los puntos están distribuidos de manera más uniforme, por lo que se necesitan menos muestras y el camino se puede cerrar ( smooth cycle
).
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}[scale=1]
\begin{axis}[ticks=none,
axis x line=middle,
axis y line=middle,
y axis line style={<->},
xlabel=$x$,
ylabel={$y$}
]
\def\xzero{25}
\def\yzero{12.5}
\def\RotPhi{66}
\def\RadiusA{36.5}
\def\RadiusB{22}
\addplot[
line width=.4,
smooth cycle,
variable=t,
samples=100,
domain=0:360,
] ({
\xzero + \RadiusA*cos(\RotPhi)*cos(t) - \RadiusB*sin(\RotPhi)*sin(t)
}, {
\yzero + \RadiusA*sin(\RotPhi)*cos(t) + \RadiusB*cos(\RotPhi)*sin(t)
})
;
\end{axis}
\end{tikzpicture}
\end{document}