> But the order of operations you apply to the transform is the reverse of what > you might think will happen. One way to simplify the maths slightly is to > generate the graph path using a fixed reference bounds of 1 x 1, located at > the origin. Then you can directly use your view's size and position to scale > and translate. >
I've got it down to this which actually does what I want, even when I resize the window, with the exception that it's also scaling the stroke path, which I don't want. I'm trying to keep the stroke path the same size, even thought I resize and scale the entire NSBezierPath to the view size. Having a little trouble figuring out how to do this. - (void) drawRect:(NSRect) rect { float realBoundFactor = 0.9; NSRect bounds = [self bounds]; float xFactor = (bounds.size.width * realBoundFactor) / (pointCount); float yFactor = (bounds.size.width * realBoundFactor) / (pointCount); [[NSColor blackColor] setFill]; [NSBezierPath fillRect:bounds]; NSAffineTransform *newTransform = [NSAffineTransform transform]; [newTransform translateXBy:20.0 yBy:20.0]; [newTransform scaleXBy:xFactor yBy:yFactor]; [newTransform concat]; [self drawAxes:rect]; [self drawError:rect]; return; } _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com