pstricks pscustom 变形物体

pstricks pscustom 变形物体

如果我结合\psline\pscurve创建一个对象并将其放入\pscustom,则该对象会变形。在我看来,贝塞尔曲线由于关闭路径而获得了一些额外的边界条件,但我可能完全搞错了。

这个例子是一个更大的草图的一部分(因此可能有奇怪的数字),我试图绘制一个凹透镜:

 \begin{pspicture}(.2,1)
    \pscustom[fillstyle=solid, fillcolor=lightgray, linestyle=dashed]{
        \psline(2.9,2.15)(3.1,2.15)
        \pscurve(3.1,2.15)(3.03,1.65)(3.1,1.15)
        \psline(3.1,1.15)(2.9,1.15)
        \pscurve(2.9,1.15)(2.97,1.65)(2.9,2.15)}

    \psline(2.9,2.15)(3.1,2.15)
    \pscurve(3.1,2.15)(3.03,1.65)(3.1,1.15)
    \psline(3.1,1.15)(2.9,1.15)
    \pscurve(2.9,1.15)(2.97,1.65)(2.9,2.15)
 \end{pspicture}

加倍和linestyle=dashedofc 只是为了演示。有没有办法像我在外面一样填充物体\pscustom

示例输出

答案1

\pscustom创建一条封闭路径。它使用直线/曲线的最后一个点作为下一条直线/曲线。这就是为什么对于沿着直线或另一条曲线的曲线只需要 2 个点,而对于直线只需要一个点的原因。第一个点始终是前一个宏的最后一个点:

\documentclass[a4paper,12pt]{article}
\usepackage{pstricks}
\begin{document}

\psset{unit=10}
 \begin{pspicture}(2.5,1)(4,3)
 \pscustom[fillstyle=solid, fillcolor=lightgray, linestyle=dashed]{
    \psline(2.9,2.15)(3.1,2.15)
    \pscurve(3.03,1.65)(3.1,1.15)
    \psline(2.9,1.15)
    \pscurve(2.97,1.65)(2.9,2.15)}

 \psline(2.9,2.15)(3.1,2.15)
 \pscurve(3.1,2.15)(3.03,1.65)(3.1,1.15)
 \psline(3.1,1.15)(2.9,1.15)
 \pscurve(2.9,1.15)(2.97,1.65)(2.9,2.15)
 \end{pspicture}

\end{document}

在此处输入图片描述

使用\psline(0,0)(1,1)\pscurve(1,1)(3,1)(4,2)insinde\pscustom绘制为\pscurve(1,1)(1,1)(3,1)(4,2)不同于 \pscurve(1,1)(3,1)(4,2)

相关内容