如何沿任意直线反映函数的图形?

如何沿任意直线反映函数的图形?

是否可以绘制 的图的反射 (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}

在此处输入图片描述

相关内容