-
Advanced level
【基本-14】グローバル変数とローカル変数について
PostScriptではローカル変数という明確なものはありませんが、辞書機能を利用して変数の有効範囲をシミュレートすることは可能です。辞書とはキーと値をペアにしたデータの入れ物です。PostScriptでは●ユーザー辞書は読み書き可能なローカル辞書で辞書スタ... -
Advanced level
【基本-15】DSCとEPSについて
PostScriptはプログラムの全体的な構造を規定していません。DSC(Document Structuring Conventions/文書構造規則)は文書交換を容易にするために推奨されています。つまりアプリに読み込まれた時やプリント出力を望ましい結果にするための規則です。必須... -
Advanced level
【基本-16】数値の切り上げ/切り捨てなどについて
算術演算には整数を実数にしたり、実数を整数にしたり、数値を切り上げたり、切り下げたりするものがあります。 【オペレータの説明】 数値 ceiling数値を整数に切り上げる(例) 3.141592 ceiling → 4.0数値 floor数値を整数に切り捨てる(例) 3... -
Advanced level
【変換-1】円筒(円柱)形変換
図形を円筒形に変換します。参考書籍をもとに変換式をPostScriptコードにしました。元の変換式はx=r*sin(th)z=r*cos(th)yの位置は変わりません。 円筒形変換だけでは見た目の変換が分かりづらいので、回転を加えています。回転の変換式はx軸の回転x1=xy1=y... -
Advanced level
【変換-2】おうぎ形変換
図形をおうぎ形に変換します。参考書籍をもとに変換式をPostScriptコードにしました。 変換式のパラメータは図をご参照ください。d=a*(x1-x)/x1+bx2=(r+y1)*cos(d)+x0y2=(r+y1)*sin(d)+y0 参考書籍:数式によるパソコン・グラフィックスのテクニック 依田... -
Advanced level
【変換-3】射影変換
図形をx軸またはy軸で回転させて斜めにし、遠近感のある図形にします。参考書籍をもとに変換式をPostScriptコードにしました。 変換式はL:視点までの距離a:平面の傾き角度y1=k*L*y/(L*cos(a)-y*sin(a))x1=k*x*(L+y1*sin(a))/L 参考書籍:続パソコン・グ... -
Advanced level
【変換-4】平行投影変換
遠近感がない平行投影で立方体の投影図を描きます。立方体の各頂点の座標を配列で用意します。頂点4つを組にして面を作り、配列からその座標を取り出します。回転変形をして描画します。背面のみを赤にして、前後関係を分かりやすくしています。 参考書籍... -
Advanced level
【変換-5】透視投影変換
遠近感のある透視投影で立方体の投影図を描きます。プログラムは平行投影変換とほぼ同じで、透視変換式が追加されています。透視変換をプロシージャ化しようと思ったのですが、ちょっと面倒です。ベタなやり方ですが各軸の回転変換の下にそれぞれ置いてい... -
Advanced level
【変換-6】球面変換
図形を球面に投影したような変換をします。参考書籍をもとに変換式をPostScriptコードにしました。 変換式はL:円の半径z=sqr(x2+y2)z1=L*sin(2*atan(z/L))x1=x*z1/zy1=y*z1/z円の方程式 x2+y2を使い、円の内側か外側かを判断し、円外ならそのまま描画し... -
Advanced level
【変換-7】ドーナツ形変換
図形をドーナツ形に変換をします。参考書籍をもとに変換式をPostScriptコードにしました。変換式はL:ドーナツ内径(穴)r:元図形の幅H:元図形の高さ th=2π*(x-x1)/xx2=(L+y1)*cos(th)+x0y2=(L+y1)*sin(th)+y0 サンプルでは8個の円を横に並べたものを変...