クリッピングとは, 折れ線やトーンなどの図形のうち描画したい領域に入る部分だけを出力し, そこからはみ出した部分を除外する機能を指す. DCLにおいては, クリッピングは次の場所で行なわれる.
それぞれのクリッピングは, その座標系の座標軸に平行な線で囲まれる矩形領域に対して行なわれる. したがって, 地図投影の際に極を移動する回転を行なうと, TC におけるクリッピング境界はは経緯線に一致しなくなる.
ビューポートにおけるクリッピングを有効にするには, DclSetParmを用いて ENABLE_CLIPPING を.true.にする(初期値は.false.). 他のクリッピングは常におこなうようになっている. なお, 正射図法で TC におけるクリッピング境界を省略値のまま使うと, 裏側の線分なども描くことになる. 表側だけを描くためには'TYMIN' を 0 にする.
DCLのトーンは通常 (クリッピングされなければ) 指定された境界線が交わっていても, その図形の内側が塗りつぶされる. 正確には, ソフトフィルは Even Odd Rule にしたがって塗りつぶしが行われ, ハードフィルは機種依存であるが, できるだけソフトフィルに近い規則で 塗りつぶされる様になっている.
旧バージョンではハードフィルはクリッピングの対象になっていなかったが, DCL ver.5 からハードフィルもソフト的にクリッピング できるようになった. すなわち, トーンのクリッピングはハードウェアが行うのではなく, 指定された領域とクリッピング範囲が重なる部分を指定する境界点を生成して, そのデータをトーンルーチンに渡すようになっている. このクリップされた境界線を求めるアルゴリズムは, 境界線の向きが決まっていることを前提としている. ここで, 境界線の向きとは境界線を指定する点列を, 時計回りに指定するか, 反時計回りに指定するかということを言う. このアルゴリズムは旧来のトーンの塗りつぶし規則と整合性が悪いが, 地図上 (T 座標系) では境界線の向きがわからないと内側と外側を 判断することができない.
具体的にはトーンをクリッピングする手順は次のようになる.
クリッピングされない領域に関しては, 旧来の規則がそのまま適用され,
BOUNDARY_DIRECTION は何の意味ももたない.
つまり, BOUNDARY_DIRECTION を適当に指定することで,
境界線の外側を塗りつぶすことができるわけではない.
したがって, 境界線が交わるような図形を塗りつぶす時に, クリッピングを行うのは危険である. クリッピングを行う時は, 安全のために
様にしていただきたい.
なお, 図形の外側を塗りつぶしたい時には, その図形が確実にクリッピングされるように領域を2分割し, クリッピング領域 (ビューポート) を設定しなおして, 2度トーンルーチンを呼ぶ.