我想用系统生成图表:
\begin{tikzpicture}
\begin{axis}[axis equal,
axis lines=middle,
axis line style={->},
tick style={color=black},
xtick=\empty,
ytick=\empty
]
\addplot[samples=360, domain=0:2*pi]
({x = sin(t)*a^sin(t)+x_0}, {y = cos(t)*b^sin(t)+y_0});
\end{axis}
\end{tikzpicture}
本系统
{ x = sin(t)*a^sin(t) + x_0
{ y = cos(t)*b^sin(t) + y_0
答案1
你实际上离解决方案并不远。pgfplots
让你用语法绘制参数图
\addplot ({<expression for x}, {<expression for y>});
其中 x 和 y 的表达式是方程的右侧。要用作t
绘图变量,请指定variable=t
。此外,请注意,的三角函数pgf
默认将度数作为输入,因此您需要手动转换为弧度,或指定trig format plots=rad
将弧度设为默认值。最后,参数a
,b
x_0
,y_0
您可以用数字替换,也可以使用declare function
下面的示例来定义它们。
\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}[
declare function={
a=1;
b=1;
x_0=0;
y_0=0;
}]
\begin{axis}[axis equal,
axis lines=middle,
axis line style={->},
tick style={color=black},
xtick=\empty,
ytick=\empty,
trig format plots=rad
]
\addplot[samples=360, domain=0:2*pi, variable=t]
({sin(t)*a^sin(t)+x_0}, {cos(t)*b^sin(t)+y_0});
\end{axis}
\end{tikzpicture}
\end{document}