You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostScript中moveto单独stroke无效果的原因咨询(Ghostscript 9.52)

Ghostscript中moveto stroke无显示的原因解析

这不是Ghostscript的Bug,完全符合PostScript语言规范。

PostScript的描边操作(stroke)要求路径中包含有效子路径,而单独的moveto并不构成有效子路径:

  • 子路径必须是moveto后跟随至少一条画线指令(如lineto、rlineto、curveto等),或者通过closepath闭合形成的路径。
  • 仅执行moveto的路径属于空路径,stroke会直接忽略,不会产生任何绘制效果。

你测试的几种情况对应的逻辑:

  • 0 dup moveto stroke:只有起点定位,没有任何线段或闭合操作,无有效子路径,因此无显示。
  • 0 dup moveto closepath stroke:closepath将当前点与子路径起点(同一位置)连接,形成零长度的闭合子路径,满足描边条件;配合1 setlinecap(圆形端点)的设置,最终绘制出圆点。
  • 0 dup moveto 0 dup rlineto stroke:rlineto添加了一条零长度的线段,构成有效子路径,结合圆形端点设置,成功绘制出点。

PostScript规范明确规定,描边操作会跳过空的子路径,setlinecap仅作用于已有线段的端点样式,前提是存在可描边的有效路径。

内容的提问来源于stack exchange,提问作者U. Windl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 01:14:54