DCLで使用する座標系には 4 つのレベルがある. それぞれのレベルは上位レベルから順に「ユーザー座標系」, 「正規座標系」, 「透視座標系」, 「装置座標系」というように呼ばれる.
最も上位のユーザー座標系はユーザーが定義する座標系で、 X-Y座標や地図投影座標などが含まれる。 その一つ下位の正規座標系には2次元, 3次元のそれぞれ1つずつの直角座標系が定義されており, どの軸も定義域は[0,1] である。 多様なユーザー座標はすべてこの2種類の座標系に変換される. この変換のことを「正規変換」 と呼ぶ.
次に「透視変換」と呼ばれる変換によって、正規座標系は透視座標系に変換される。 透視座標系は図の形式にも出力デバイスにもよらない、共通の座標系である。 2次元の直角座標系で, x軸, y軸 ともに定義域は[0,1] になっている。 2次元の正規座標系からの透視変換は、通常は恒等変換である。 3次元の正規座標系からの透視変換は、透視図法すなわち遠近法による変換がおこなわれる。 2次元の正規座標系は, 一旦, 3次元の正規座標系に割り付けられてから透視変換されているので、 2次元的に描いた1枚の図を斜めから眺めたような描写も可能である。
最も下位の座標系である装置座標系はデバイス固有の座標系で, デバイスによって異なる.
2次元の座標系を普通に使う限り,  透視変換を意識する必要はないが,  
あとで透視変換を使いたくなることも考えて, 
正規座標系と透視座標系は使い分けておいた方が良い.  
すなわち, 座標軸などの「図に付随した情報」は,  透視図法で図とともに変換すべき情報なので
正規座標系で描画し, ページ数やパラメータの数値などのように
「紙に付随した情報」は透視座標系で描画すべきである.
 
DCLでは、線分や塗りつぶし、文字などの基本描画をユーザー座標系・正規座標系・透視座標系 のいずれでもおこなうことができる。
 
program sample_2d03
  use dcl
  integer,parameter :: nx=18, ny=18
  real,parameter :: xmin=  0, xmax=360, dx1=20, dx2=60
  real,parameter :: ymin=-90, ymax=+90, dy1=10, dy2=30
  real,parameter :: pi=3.141592, drad=pi/180, dz=0.05, dp=0.2
  real,dimension(0:nx,0:ny) :: p
    do j = 0, ny
      do i = 0, nx
        alon = ( xmin + (xmax-xmin) * i/nx ) * drad
        alat = ( ymin + (ymax-ymin) * j/ny ) * drad
        slat = sin(alat)
        p(i,j) = cos(alon) * (1-slat**2) * sin(2*pi*slat) + dz
      end do
    end do
    call DclOpenGraphics()
!    rmiss = DclGetReal( 'GLOBAL:rmiss' )
    call DclGetParm( 'GLOBAL:rmiss', rmiss )
    call DclSetParm( 'GRAPH:LSOFTF', .false. )
    call DclNewFrame
    call DclSetWindow( xmin, xmax, ymin, ymax )
    call DclSetViewPort( 0.2, 0.8, 0.2, 0.8 )
    call DclSetTransNumber( DCL_UNI_UNI )
    call DclSetTransFunction
    call DclSetShadeLevel( rmiss,  -dp, 201 )
    call DclSetShadeLevel(    dp, dp*2, 401 )
    call DclSetShadeLevel( dp*2, rmiss, 402 )
    call DclShadeContour( p )
    call DclDrawAxis( 'bt', dx2, dx1 )
    call DclDrawTitle( 'b', 'LONGITUDE', 0.0 )
    call DclDrawAxis( 'lr', dy2, dy1 )
    call DclDrawTitle( 'l', 'LATITUDE', 0.0 )
    call DclSetContourLevel( p, dp )
    call DclDrawContour( p )
    call DclCloseGraphics
end program
 
 | 
 
![]()  | 
|   
                DclSetShadeLevel (UEGTLA,UEGTLB, UESTLV,UESTLN)  |  
    ぬりわけレベルを設定する. | 
|  
                DclClearShadeLevel (UEITLV)  |  
    ぬりわけレベルを無効にする. | 
|   
                DclShadeContourEx (UETONF)  |   
    image 機能を使って2次元等値線図を色でぬりわける. | 
* 括弧の中は、対応するf77インターフェイス名.