pst-optic:绘制没有光线的透镜和物体

pst-optic:绘制没有光线的透镜和物体

我在课堂上使用 latex 和 pst-optic。对于我的练习,我想画一个有焦点、物体但没有光线和图像的透镜。这样,学生就可以通过在我用 latex/pst 制作的讲义上直接追踪光线来构建图像。然后我可以用光线给出解决方案。有没有一种方法可以轻松地做到这一点,只需一个简单的开关或参数?

使用该drawing=false参数,只会绘制镜头,没有轴也没有物体!然后我必须手动添加后者、轴、物体……

一个例子:这是 pst-optics 产生的结果,包括所有射线和图像:

在此处输入图片描述

这是我想要的,轴、镜头和物体(请注意,我要添加的所有内容 pst-optic 都可以轻松完成……): 在此处输入图片描述

以下是生成这两张图片的代码:

\documentclass[a4paper,12pt]{report}

\usepackage{auto-pst-pdf}
\usepackage{pst-optic}

\begin{document}

% Example using pst-optics:
\begin{pspicture}[showgrid=false](-15.5,-6)(15,6)
\rput(0,0){\lens[lensType=CVG,yBottom=-3.5,yTop=3.5,lensGlass=false,lensHeight=6.5,
spotFi=315,lensWidth=0.05,lensColor=black,
focus=2.0,OA=-4,AB=2,spotAi=10,spotBi=270,spotFi=90] } 
\end{pspicture}

% the same, without the rays, but I have to draw many things myself:
\begin{pspicture*}[showgrid=false](-5,-3.5)(5,3.5) 
\pnode(2,-2){FF}
\qdisk(-2,0){1.5pt} \rput(-2,-0.5){F}
\qdisk(2,0){1.5pt} \rput(2,-0.5){F}
\rput(0,0){\lens[lensType=CVG,yBottom=-3.5,yTop=3.5,lensGlass=false,lensHeight=6.5,drawing=false,
spotFi=315,lensWidth=0.05,lensColor=black] 
\psline[linewidth=1pt](xLeft)(xRight) 
}
\psline[length=2,linewidth=2pt,arrows=->](-4,0)(-4,2)
\rput(-4,-0.5){A}
\rput(-4,2.5){B}
\end{pspicture*}

\end{document}

答案1

使用

\rput(0,0){\lens[lensType=CVG,yBottom=-3.5,yTop=3.5,lensGlass=false,lensHeight=6.5,
    spotFi=315,lensWidth=0.05,lensColor=black,rayColor=white,% <<<<========
    focus=2.0,OA=-4,AB=2,spotAi=10,spotBi=270,spotFi=90] } 

在此处输入图片描述

答案2

我尝试过做类似的事情,但当我使用时,rayColor=white光线仍然存在,导致输出不佳。文档说这drawing=false仅适用于镜子。但我发现了一些有用的东西。

\lens[onlyrays=true,linestyle=none,rayColor=white]

这会删除每一行,因此您需要重新添加所需的行(AB、A'B' 等)

对于以下输出我使用了:

    \resetOpticOptions
    \begin{pspicture*}(-5,-3.5)(5,3.5)
        \rput(0,0){
            \lens[
                lensType=CVG,yBottom=-3.5,yTop=3.5,onlyrays=true,lensHeight=6.5,spotFi=315,lensWidth=0.05,lensColor=black,rayColor=white,
                focus=2.0,OA=-4,AB=2,spotAi=10,spotBi=270,spotFi=90,linestyle=none
            ]
        }
        \psline[linestyle=solid,linecolor=black](A)(B)
        \psline[linestyle=solid,linecolor=black](A')(B')
        \psline[linestyle=solid,linecolor=black]{<->}(0,-3.5)(0,3.5)% AB = 3
        \psline[linestyle=solid,linecolor=black](-5,0)(5,0)
    \end{pspicture*}

在此处输入图片描述

相关内容