如何在 pst-optic 中延长折射光线?

如何在 pst-optic 中延长折射光线?

我正在尝试使用宏重现斯涅尔定律\refractionRay。但是,我获得的折射光线很“短”,我希望进一步延伸它。我该如何实现这一点?另外,文档不够详细,或者其中的很多解释都含糊不清。我指的是pst-optic1.02 版的文档。在第 20 页,它讨论了n1n2的值分别为 1 和 1.41。但是为什么宏以这种方式使用\refractionRay(A)(B)(C)(D){1}{4}{E}而不是\refractionRay(A)(B)(C)(D){1}{1.41}{E}?为什么 beta 的正弦大于 1?

我的 MWE:

\documentclass{article}

\usepackage{pst-optic}

\begin{document}

\begin{pspicture}

\pnode(-3.5,0){A}
\pnode(3.5,0){B}
\uput[0](B){$x$}
\pspolygon[fillstyle=solid,fillcolor=lightgray,linecolor=lightgray](-3,0)(3,0)(3,3)(-3,3)(-3,0)
\psline[linewidth=1pt,linecolor=blue]{->}(A)(B)
\rput(-2,-1.5){\Large$n_1$}\rput(-2,1.5){\Large$n_2$}
\pnode(-1,-3){C}
\pnode(0,0){D}
\psline[linewidth=1pt,linecolor=red]{->}(C)(D)
\refractionRay(C)(D)(A)(B){1}{4}{E}
\psline[linewidth=1pt,linecolor=red]{->}(D)(E')
\end{pspicture}

\end{document}

在此处输入图片描述

答案1

这看起来像是文档中的一个错误。仅\lensSPHRay 使用预定义值。但是,您可以使用以下方法获取更短或更长的箭头pcline

\pcline[arrowscale=2,linewidth=1pt,linecolor=red,
    nodesepB=-2cm]{->}(E)(E')

nodesep=-2cm使线成为2厘米更长向右。

在此处输入图片描述

相关内容