PostScript::Simpleには楕円を描くためのメソッドは用意されていません。
そのため、自力で書く必要があります。
コツは楕円の中心へtranslateして、そこを中心にscaleします。
用意されているcircleメソッドで円を書いて、
scaleを元に戻して、translateも元に戻します。
これで元の座標軸に戻ります。
# 楕円のサイズ my $width = 100; my $height = 50; # 横幅を基準に描画する $ps -> {'pspages'} .= sprintf( "%d %d translate\n", $width, $height ); $ps -> {'pspages'} .= sprintf( "1 %.2f scale\n", $height / $width ); $ps -> circle( 0, 0, $width ); $ps -> {'pspages'} .= sprintf( "1 1 %.2f div scale\n", $height / $width ); $ps -> {'pspages'} .= sprintf( "-%d -%d translate\n", $width, $height );
movetoとの使い分けが難しいですね。
楕円のときだけtranslateなのかな?