boundingboxの数値を書き出すPostScriptが、キチンと点Aの部分はX=20mm・Y=17mm、点BはX=30mm・Y=27mmと書き出してくれれば、何の問題もないのですが、PostScriptのboundingboxは整数のpoint値しかサポートしないのです。
点Aはpointに換算するとX=56.6929pt・Y=48.1895ptとなりますが、PostScriptではX=56pt・Y=48ptと小数点以下の数字を丸めて整数にしてしまいます。この丸め方の規則は四捨五入でもないようです。
もちろん点BもX=85.0396pt・Y=76.5352ptがX=86pt・Y=77ptと丸められてしまいます。
この点A・B共に丸められた、いいかげんな数値をboundingboxとしてIllustratorはPostScriptに書き出すのです。【図6】
この時点ですでに点Aで最大1pt未満(小数点以下の端数を丸めるので)、点Bでも同じく最大1pt未満、計2pt未満の誤差が、実際のオブジェクトとPostScriptの間に生じるのです。
この通り10mm×10mm(28.347pt×28.347pt)の正方形オブジェクトは、30pt×29ptになってしまいました。 |