Reference Manual

  • 15.0
  • 07/23/2021
  • Public Content

Drawing Lines on the Screen

Writing a Graphics Program Overview next calls the subroutine
, which draws a rectangle around the outer edges of the screen and three horizontal lines that divide the screen into quarters. (See Writing a Graphics Program Overview.)
! DRAWLINES - This subroutine draws a box and ! several lines. SUBROUTINE drawlines( ) USE IFQWIN EXTERNAL newx, newy INTEGER(2) status, newx, newy, maxx, maxy TYPE (xycoord) xy COMMON maxx, maxy ! ! Draw the box. status = RECTANGLE( $GBORDER, INT2(0), INT2(0), maxx, maxy ) CALL SETVIEWORG( INT2(0), newy( INT2( 500 ) ), xy ) ! This sets the new origin to 0 for x and 500 for y. ! Draw the lines. CALL MOVETO( INT2(0), INT2(0), xy ) status = LINETO( newx( INT2( 1000 )), INT2(0)) CALL SETLINESTYLE( INT2( #AA3C )) CALL MOVETO( INT2(0), newy( INT2( -250 )), xy ) status = LINETO(newx( INT2( 1000 )),newy( INT2( -250 ))) CALL SETLINESTYLE( INT2( #8888 )) CALL MOVETO(INT2(0), newy( INT2( 250 )), xy ) status = LINETO( newx( INT2( 1000 )),newy( INT2( 250 ) ) ) END SUBROUTINE
The first argument to
is the
fill flag
, which can be either $GBORDER or $GFILLINTERIOR. Choose $GBORDER if you want a rectangle of four lines (a border only, in the current line style), or $GFILLINTERIOR if you want a solid rectangle (filled in with the current color and fill pattern). Choosing the color and fill pattern is discussed in Adding Color Overview and Adding Shapes.
The second and third
arguments are the x- and y-coordinates of the upper-left corner of the rectangle. The fourth and fifth arguments are the coordinates for the lower-right corner. Because the coordinates for the two corners are ( 0, 0 ) and ( maxx, maxy ), the call to
frames the entire screen.
The program calls
to change the location of the viewport origin. By resetting the origin to (0, 500) in a 1000x1000 viewport, you effectively make the viewport run from (0, -500) at the top left of the screen to (1000, 500) at the bottom right of the screen:
CALL SETVIEWORG( INT2(0), newy( INT2( 500 ) ), xy )
Changing the coordinates illustrates the ability to alter the viewport coordinates to whatever dimensions you prefer. (Viewports and the
routine are explained in more detail in Understanding Coordinate Systems Overview.)
The call to
changes the line style from a solid line to a dashed line. A series of 16 bits tells the routine which pattern to follow. Five possible line patterns are available. For more information, see SETLINESTYLE in the Intel Fortran Language Reference.
When drawing lines, first set an appropriate line style. Then, move to where you want the line to begin and call
, passing to it the point where you want the line to end. The
subroutine uses the following code:
CALL SETLINESTYLE(INT2( #AA3C ) ) CALL MOVETO( INT2(0), newy( INT2( -250 ) ), xy ) dummy = LINETO( newx( INT2( 1000 )), newy( INT2( -250 )))
positions an imaginary pixel cursor at a point on the screen (nothing appears on the screen), and
draws a line. When the program called
, it changed the viewport origin, and the initial y-axis range of 0 to 1000 now corresponds to a range of -500 to +500. Therefore, the negative value -250 is used as the y-coordinate of
to draw a horizontal line across the center of the top half of the screen, and the value of 250 is used as the y-coordinate to draw a horizontal line across the center of the bottom half of the screen.

Product and Performance Information


Performance varies by use, configuration and other factors. Learn more at