使用 pst-optexp 沿光路定位

使用 pst-optexp 沿光路定位

我正在尝试用该包绘制一个物体(例如镜头)pst-optexp。当我尝试将该物体与另一个物体以给定距离绘制在一起,但沿着光路绘制时,就会出现困难。

在以下示例中,我想将第二个透镜放置在距离第一个透镜 (L1) 3 个“单位”的位置,但要遵循光束轨迹。如何实现?

\begin{pspicture}[showgrid](0,0)(3,3)
\pnodes(0,0){Laser}(1,0){M1}(2,3){M2}(3,1.5){End}
\begin{optexp}
    \optsource[innerlabel](Laser)(M1){Laser}
    \mirror[compname=M1](Laser)(M1)(M2){M1}
    \lens[position=0.3] (M1)(M2){L1}
    \mirror[compname=M2](M1)(M2)(End){M2}
    \drawbeam (Laser){M1}{M2}(End)
\end{optexp}
\end{pspicture}

光学设置示例

编辑:为了更好地说明我的需求,这里有一些精度。该过程的目标是让镜头“自动”对准激光路径(由一系列镜子施加)。我理想情况下希望能够将镜头放置在激光路径的坐标系中;为了获得最佳设置(在这种情况下),两个镜头之间的距离应对应于它们的两个焦距的总和。

以下示例中,用红色突出显示了分隔两个透镜的长度为 3 的路径。无需手动计算 L1 和 M2 之间的路径长度 (d=0.7*sqrt(9+1)),然后计算 M2 和第二个透镜之间的剩余距离 (3-d=0.768),是否可以说“沿着激光路径,在距离点 P 处添加 X 个单位的透镜”?

\begin{pspicture}[showgrid](0,0)(3,3)
\pnodes(0,0){Laser}(1,0){M1}(2,3){M2}(3,1.5){End}
\begin{optexp}
    \optsource[innerlabel](Laser)(M1){Laser}
    \mirror[compname=M1](Laser)(M1)(M2){M1}
    \lens[compname=L1, position=0.3] (M1)(M2){L1}
    \mirror[compname=M2](M1)(M2)(End){M2}
    \lens[compname=L2, abspos=0.768](M2)(End)
    \drawbeam (Laser){M1}{M2}(End)
    \drawbeam[linecolor=red] (\oenodeCenter{L1}){M2}(\oenodeCenter{L2})
\end{optexp}
\end{pspicture}

\begin{pspicture}[showgrid](0,0)(3,3)
\pnodes(0,0){Laser}(1,0){M1}(2,3){M2}(3,1.5){End}
\begin{optexp}
    \optsource[innerlabel](Laser)(M1){Laser}
    \mirror[compname=M1](Laser)(M1)(M2){M1}
    \lens[compname=L1, abspos=0.3] (Laser)(M1){L1}
    \mirror[compname=M2](M1)(M2)(End){M2}
    \lens[compname=L2, abspos=2.3](M1)(M2)
    \drawbeam (Laser){M1}{M2}(End)
    \drawbeam[linecolor=red] (\oenodeCenter{L1}){M1}(\oenodeCenter{L2})
\end{optexp}
\end{pspicture}

突出透镜间距离的光学设置示例 光学设置示例,重点突出透镜之间的距离,第二种选择

我们可以看到,对于本质上相同的设置,位置以及定位元素必须改变。

答案1

也许这接近你想要的?

\documentclass[border=1cm, 12pt, dvipsnames]{standalone}%pstricks,
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsfonts, amssymb}
\usepackage{pst-optexp}
\usepackage{auto-pst-pdf}

\begin{document}

\begin{pspicture}[showgrid](0,0)(6,6)
\pnodes(0,0){Laser}(1,0){M1}(2,3){M2}(3,1.5){End}
\begin{optexp}
    \optsource[innerlabel](Laser)(M1){Laser}
    \mirror[compname=M1](Laser)(M1)(M2){M1}
    \lens[position=0.3] (M1)(M2){L1}
     \lens[position=1.7] (M1)(M2){L2}
    \mirror[compname=M2](M1)(M2)(End){M2}
    \drawbeam (Laser){M1}{M2}(End)
\end{optexp}
\end{pspicture}

\end{document} 

在此处输入图片描述

相关内容