X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=doc%2Fctsim-appendix.tex;h=a826258e35e415887b2a6c4046eee6a9de106a84;hb=50fd2b2fb2ff63871986e6853dbebad0ecd00698;hp=2e2aed60b943082c21c49211f16fba8d1700eaf3;hpb=82ea0c94394a5a175b260160760155a6686203a1;p=ctsim.git diff --git a/doc/ctsim-appendix.tex b/doc/ctsim-appendix.tex index 2e2aed6..a826258 100644 --- a/doc/ctsim-appendix.tex +++ b/doc/ctsim-appendix.tex @@ -8,8 +8,8 @@ Simple Graphics Package was created in 1980 by Kevin Rosenberg and is modelled after the hypothetical graphics library described by Foley and van Dam\cite{FOLEY82}. It is designed to be platform-independent. -\section{Flowchart} - +\section{Transformation Sequence} +\latexonly{ \parbox{11cm}{ \centerline{Master coordinate (MC) level} \centerline{$\downarrow$} @@ -24,26 +24,35 @@ Dam\cite{FOLEY82}. It is designed to be platform-independent. \centerline{Clipping against Viewport} \centerline{$\downarrow$} \centerline{Convert to Physical device coordinates (PDC)} +}} +\latexignore{ +\centerline{Master coordinate (MC) level} +\centerline{Apply \emph{Current transformation matrix}} +\centerline{World coordinate (WC) level} +\centerline{Clipping against Window} +\centerline{Convert to Normalized device coordinates (NDC)} +\centerline{Clipping against Viewport} +\centerline{Convert to Physical device coordinates (PDC)} } \section{Functions}% \subsection{Master coordinate functions} \begin{twocollist} -\twocolitem{\texttt{setWindow(xmin, ymin, xmax, ymax)}}{Set window for world +\twocolitem{\texttt{setWindow(xmin,ymin,xmax,ymax)}}{Set window for world coordinates} -\twocolitem{\texttt{moveAbs(x, y)}}{Move graphics cursor to absolute position} -\twocolitem{\texttt{moveRel(dx, dy)}}{Move graphics cursor relative to current position} -\twocolitem{\texttt{pointAbs(x, y)}}{Draw point at current position} -\twocolitem{\texttt{pointRel(dx, dy)}}{Draw point relative to current position} -\twocolitem{\texttt{lineAbs(x, y)}}{Draw line from current position to +\twocolitem{\texttt{moveAbs(x,y)}}{Move graphics cursor to absolute position} +\twocolitem{\texttt{moveRel(dx,dy)}}{Move graphics cursor relative to current position} +\twocolitem{\texttt{pointAbs(x,y)}}{Draw point at current position} +\twocolitem{\texttt{pointRel(dx,dy)}}{Draw point relative to current position} +\twocolitem{\texttt{lineAbs(x,y)}}{Draw line from current position to absolute position} -\twocolitem{\texttt{lineRel(dx, dy)}}{Draw line from current position to position +\twocolitem{\texttt{lineRel(dx,dy)}}{Draw line from current position to position relative to current position} \twocolitem{\texttt{markerAbs(x,y)}}{Draw marker at current position} \twocolitem{\texttt{markerRel(dx,dy)}}{Draw marker relative to current position} -\twocolitem{\texttt{polylineAbs(x[], y[], n)}}{Draw a series of lines to absolute position} -\twocolitem{\texttt{polylineRel(dx[], dy[], n)}}{Draw series of lines relative to current position} +\twocolitem{\texttt{polylineAbs(x[],y[],n)}}{Draw a series of lines to absolute position} +\twocolitem{\texttt{polylineRel(dx[],dy[],n)}}{Draw series of lines relative to current position} \twocolitem{\texttt{drawString(str)}}{Draw text string at current positon} \twocolitem{\texttt{drawCircle(r)}}{Draw circle at current positon} \twocolitem{\texttt{drawArc(r,start,stop)}}{Draw arc with center at current positon} @@ -52,11 +61,11 @@ relative to current position} \subsection{Normalized coordinate functions}% \begin{twocollist} -\twocolitem{\texttt{Viewport(xmin, ymin, xmax, ymax)}}{Viewport for window +\twocolitem{\texttt{Viewport(xmin,ymin,xmax,ymax)}}{Viewport for window in NDC} -\twocolitem{\texttt{stylus(x, y, beam)}}{Draw a line from current -position} -\twocolitem{\texttt{markerNDC(xndc, yndc)}}{Draw marker at NDC position} +\twocolitem{\texttt{stylus(x,y,beam)}}{Draw a line from current +position if beam = 1, otherwise move stylus to new position} +\twocolitem{\texttt{markerNDC(xndc,yndc)}}{Draw marker at NDC position} \end{twocollist} \subsection{Master coordinate to World coordinate transformations}% @@ -90,7 +99,7 @@ coordinates} \twocolitem{\texttt{setLinestyle(style)}}{Set current pen style} \twocolitem{\texttt{setLinewidth(width)}}{Set current pen width} \twocolitem{\texttt{setTextColor(foreground, background)}}{Set text colors} -\twocolitem{\texttt{setMarker(type, color)}}{Set marker attibutes} +\twocolitem{\texttt{setMarker(type,color)}}{Set marker attibutes} \twocolitem{\texttt{setRasterOp(rasterOp)}}{Set raster operator} \end{twocollist}