Back: 3.1.2 pldj Forward: 3.1.4 plc and plfc     FastBack: 3. Graphics Up: 3.1 Primitive plotting functions FastForward: 4. Embedding Compiled Routines Inside Yorick         Top: Yorick: An Interpreted Language Contents: Table of Contents     About: About This Document

3.1.3 plm

The plm command plots a quadrilateral mesh. Two dimensional arrays x and y specify the mesh. The x array holds the x coordinates of the nodes of the mesh, the y array the y coordinates. If x and y are M by N arrays, the mesh will consist of (M-1)*(N-1) quadrilateral zones. The four nodes (x(1,1),y(1,1)), (x(2,1),y(2,1)), (x(1,2),y(1,2)), and (x(2,2),y(2,2)) bound the first zone – nodes (1,1), (2,1), (1,2), and (2,2) for short. This corner zone has two edge-sharing neighbors – one with nodes (2,1), (3,1), (2,2), and (3,2), and the other with nodes (1,2), (2,2), (1,3), and (2,3). Most zones share edges four neighbors, one sharing each edge of the quadrilateral. The plm command:

 
plm, y, x

draws all (M-1)*N+M*(N-1) edges of the quadrilateral mesh. Optional keywords allow for separate color and linetype adjustments for both families of lines (those with constant first or second index).

An optional third argument is an existence map – not all (M-1)*(N-1) zones need actually be drawn. Logically, the existence map is an (M-1) by (N-1) array of truth values, telling whether a zone exists or not. For historical reasons, plm instead requires an M by N array called ireg, where ireg(1,) and ireg(,1) (the first row and column) are all 0, the value for zones which do not exist. Furthermore, for zones which do exist, ireg can take any positive value; the value of ireg(i,j) is the “region number” (non-existent zones belong to region zero) of the zone bounded by mesh nodes (i-1,j-1), (i,j-1), (i-1,j), and (i,j). The boundary= keyword causes plm to draw only the edges which are boundaries of a single region (the region= keyword value).

As a simple example, here is how you can draw a four by four zone mesh missing its central two by two zones:

 
x = span(-2, 2, 5)(,-:1:5);
y = transpose(x);
ireg = array(0, dimsof(x));
ireg(2:5,2:5) = 1;
ireg(3:4,3:4) = 0;
plm, y, x, ireg;

The plc, plf, and plfc commands plot functions on a quadrilateral mesh.


Back: 3.1.2 pldj Forward: 3.1.4 plc and plfc     FastBack: 3. Graphics Up: 3.1 Primitive plotting functions FastForward: 4. Embedding Compiled Routines Inside Yorick         Top: Yorick: An Interpreted Language Contents: Table of Contents     About: About This Document