Working with Paths
Drawing lines is the most basic function you can perform with
Cocoa’s drawing classes. The Application Kit
encapsulates the low-level,
Quartz path-based drawing API in the
NSBezierPath
class. Minimally,
NSBezierPath lets you draw straight lines and
Bezier paths, and using this functionality, you can construct any
shape you like.
Tip
Bezier curves, or paths, are curved lines based on the mathematics of third-degree polynomials. Because Bezier paths are based on equations, they are resolution-independent and can be scaled to any size without the loss of detail or quality generally experienced with bitmapped graphics.
Drawing with NSBezierPath is in some respects similar to
drawing on a sheet of paper with a pencil. Before you can draw a
line, you have to place the pencil lead at a point on the page.
Drawing a line requires moving the pencil from one point to another.
To draw a disjointed line, you pick up the pencil tip from the paper
and move it to another location. You might then complete a diagram by
drawing a line back to the first point. These actions are reflected
in the following NSBezierPath methods, used to
construct a path:
moveToPoint:lineToPoint:curveToPoint:controlPoint1:controlPoint2:closePath
The arguments to the first three methods are all of type
NSPoint, a C structure that encapsulates a
coordinate pair. Example 4-1 shows the
struct declaration for NSPoint.
typedef struct _NSPoint {
float x;
float y;
} NSPoint;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