Extending the Display List
GraphView’s display list and drawRect: method can easily be extended to draw objects other than graphs in the on-screen GraphView. In this section, we’ll add axes and labels to the graph.
Adding Axes
Adding X and Y axes to GraphView is quite simple, because we already have the Segment class to draw the line. All we need to do to draw the axes is to create a new method that draws the axes and then arrange for it to be invoked by GraphView’s graph: method.
Insert the following addAxesFrom:to: method declaration into
GraphView.h:- (void)addAxesFrom:(NSPoint)pt1 to:(NSPoint)pt2;Insert the following addAxesFrom:to: method implementation into
GraphView.m:- (void)addAxesFrom:(NSPoint)pt1 to:(NSPoint)pt2 { Segment *seg = [ [ [Segment alloc] initFrom:pt1 to:pt2] autorelease]; [seg setTag:AXES_TAG]; [self addGraphElement:seg]; }
Insert the lines shown here in bold into the graph: method in
GraphView.m:- (IBAction)graph:(id)sender { ... [self clear]; // Display the axes [self addAxesFrom:NSMakePoint(xmin,0.0) to:NSMakePoint(xmax,0.0)]; [self addAxesFrom:NSMakePoint(0.0,ymin) to:NSMakePoint(0.0,ymax)]; ...Build and run GraphPaper. Save all files first.
To see both the axes in GraphPaper, enter the values shown in Figure 16-5.

Figure 16-5. GraphPaper with axes
Try other functions and graphing parameters, and then Quit GraphPaper.
When the first data point comes through, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access