是否可以绘制 的图的反射 (x^(1/3)
,例如沿x=0
? 的图(x^(1/3)
有一个答案这里。
答案1
反射关于任意线的函数非常简单。为简单起见,考虑通过原点的线,并将线的方向称为 (a,b)。(对于其他线,您只需相应地移动图像轮廓即可。)然后对于 (a,b) = (1,0) 和函数f(x)=sin(x)
运行
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\begin{document}
\def\mya{1}
\def\myb{0}
\begin{tikzpicture}[
declare function={ f(\x) = sin(\x*180/pi);
reflectedx(\x) = -\x+2*\mya*(\x*\mya+f(\x)*\myb)/(pow(\mya,2)+pow(\myb,2));
reflectedy(\x) = -f(\x)+2*\myb*(\x*\mya+f(\x)*\myb)/(pow(\mya,2)+pow(\myb,2));
},
]
\begin{axis}[domain=-4:4]
\addplot [samples=50, blue] ({x}, {f(x)});
\addplot [samples=50, red] ({reflectedx(x)}, {reflectedy(x)});
\end{axis}
\end{tikzpicture}
\end{document}
产生在 x 轴上反射的图像:
对于 (a,b)=(1,1),可以得到关于 45 度线的反射:
等等。例如,如果你想绘制 x^{1/3} 并将其反映到斜率为 2/3 的某个疯狂轴上,请使用
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\begin{document}
\def\mya{3}
\def\myb{2}
\begin{tikzpicture}[
declare function={ f(\x) = (x/abs(x))*pow(abs(x),1/3);
reflectedx(\x) = -\x+2*\mya*(\x*\mya+f(\x)*\myb)/(pow(\mya,2)+pow(\myb,2));
reflectedy(\x) = -f(\x)+2*\myb*(\x*\mya+f(\x)*\myb)/(pow(\mya,2)+pow(\myb,2));
},
]
\begin{axis}[domain=-4:4]
\addplot [samples=100, blue] ({x}, {f(x)});
\addplot [samples=100, red] ({reflectedx(x)}, {reflectedy(x)});
\end{axis}
\end{tikzpicture}
\end{document}
要得到
答案2
y = t ^ (1/3)
反射的参数表示x = 0
为:
x(t) = -t
y(t) = t^3
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-plot}
\begin{document}
\begin{pspicture}(-3.5,-2.5)(4,3)
\psaxes[labelFontSize=\scriptstyle]{->}(0,0)(-3.5,-2.5)(3.5,2.5)[$x$,0][$y$,90]
\psparametricplot[linecolor=blue,algebraic]{-1.5}{1.5}{t^3|-t}
\end{pspicture}
\end{document}