
Estoy tratando de trazar el campo vectorial $F(x,y) = \cos (x+y) \vec{i} + x \vec{j}$ usando tikz. Seguí otro tema sobre cómo trazar campos vectoriales que vi aquí, solía trazar otros campos vectoriales y funcionó bastante bien, pero este me está volviendo loco. El objetivo es este
pero en lugar de eso estoy entendiendo esto
usando este código
\begin{tikzpicture}[trig format = rad]
\begin{axis}[ticks=none,
view = {0}{90},
domain = -1:1,
y domain = -1:1,
samples = 21,
]
\addplot3 [cyan, quiver={u={cos (x + y)}, v={x}, scale
arrows=0.1},samples=10, -latex] (x,y,0);
\end{axis}
\end{tikzpicture}
Ni siquiera intenté poner las líneas que representan los ejes $x$ e $y$. Primero no lo estaba usando trig format = rad
y no estaba del todo bien. Luego intenté cambiar el dominio $x$ y $y$, pero solo empeoró las cosas. Luego intenté usarlo trig format = rad
, pero obtuve esta línea aleatoria allí y el campo vectorial ni siquiera es lo que quería. ¿Alguien puede ayudarme por favor? ¡Gracias de antemano!
Respuesta1
Para obtener la flecha en el centro de las coordenadas de la cuadrícula, (x,y)
se resta la mitad de la longitud de la flecha.
\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{arrows.meta}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\clip[rounded corners] (-3.2,-3.2) rectangle (3.2,3.2);
\begin{axis}[
x=1cm, y=1cm, z=0cm,
view={0}{90},
anchor=center,
trig format plots=rad,
xmin=-3, xmax=3,
ymin=-3, ymax=3,
axis lines=center,
domain=-3:3,
y domain=-3:3,
enlargelimits=0.1,
ticks=none,
]
\addplot3[
cyan, thick,
point meta={sqrt((cos(x+y))^2+x^2)},
quiver={
u={cos(x+y)}, v={x},
scale arrows=0.2,
every arrow/.append style={-{Triangle[scale=0.2+0.8*\pgfplotspointmetatransformed/1000]}},
},
samples=10,
] (x-0.1*cos(x+y),y-0.1*x,0);
\end{axis}
\draw[cyan, ultra thick, rounded corners] (-3.2,-3.2) rectangle (3.2,3.2);
\end{tikzpicture}
\end{document}
Editar: una gráfica más correcta sería calcular el vector de flecha desde esta nueva posición como en rojo a continuación
\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{arrows.meta}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\clip[rounded corners] (-3.2,-3.2) rectangle (3.2,3.2);
\begin{axis}[
x=1cm, y=1cm, z=0cm,
view={0}{90},
anchor=center,
trig format plots=rad,
xmin=-3, xmax=3,
ymin=-3, ymax=3,
axis lines=center,
domain=-3:3,
y domain=-3:3,
enlargelimits=0.1,
ticks=none,
]
\addplot3[
cyan, thick,
point meta={sqrt((cos(x+y))^2+x^2)},
quiver={
u={cos(x+y)}, v={x},
scale arrows=0.2,
every arrow/.append style={-{Triangle[scale=0.2+0.8*\pgfplotspointmetatransformed/1000]}},
},
samples=10,
] (x-0.1*cos(x+y),y-0.1*x,0);
\addplot3[
red, thick,
point meta={sqrt((cos((x-0.1*cos(x+y))+y))^2+(x-0.1*cos(x+y))^2)},
quiver={
u={cos((x-0.1*cos(x+y))+y)}, v={x-0.1*cos(x+y)},
scale arrows=0.2,
every arrow/.append style={-{Triangle[scale=0.2+0.8*\pgfplotspointmetatransformed/1000]}},
},
samples=10,
] (x-0.1*cos(x+y),y-0.1*x,0);\end{axis}
\draw[cyan, ultra thick, rounded corners] (-3.2,-3.2) rectangle (3.2,3.2);
\end{tikzpicture}
\end{document}