• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
scaling plot to nsview size
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

scaling plot to nsview size


  • Subject: scaling plot to nsview size
  • From: Richard Langly <email@hidden>
  • Date: Sat, 19 Jun 2010 20:59:01 -0500

Hi,

I have a few hundred points which I'm trying to draw as a scatter
plot. The origin of my plot (0,0) is in the center of my canvas where
my crosshairs are. My values in this case are no larger than 0.998 and
no less than -0.932. Though the values can always change so I'm trying
to scale my graph according the whatever values are read in.

And that's where I'm having a problem, can someone look this over and
help with my scaling? I'm trying to draw circles at each point on my
view. So if my values are between -1.0 and 1.0, then my view
boundaries should be between -1 and 1, and if I had values of -1233.0
and 2321.0, then my view boundaries should be proportional.

After looking at this a bit more, I think I may have more wrong than
scaling. But I can't figure it out.

- (void) drawRect:(NSRect) rect
{
	NSRect bounds = [self bounds];

	[[NSColor blackColor] setFill];
	[NSBezierPath fillRect:bounds];

	[self drawScatterPlotAxes];
	[self drawScatter];

	return;
}


- (void) drawScatter
{
	NSRect bounds = [self bounds];

	float xFactor = (bounds.size.width * 0.5) / maxXValue;
	float yFactor = (bounds.size.height * 0.5) / maxYValue;

	NSBezierPath *copyPath = [circlePath copy];

	NSAffineTransform *xform = [NSAffineTransform transform];

	// goto center of screen where 0,0 is located to start drawing.
	[xform translateXBy:(bounds.size.width * 0.50)
					yBy:(bounds.size.height * 0.50)];
	[xform scaleXBy:(xFactor / 2) yBy:(yFactor / 2)];

	[copyPath transformUsingAffineTransform:xform];

	[[NSColor yellowColor] setStroke];

	[copyPath stroke];

	return;
}


- (void) addCoord:(double) xval yCoord:(double) yval
{
	NSRect rect = NSMakeRect(xval, yval, 3, 3);

	[circlePath appendBezierPathWithOvalInRect:rect];
}
_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:

This email sent to email@hidden

  • Prev by Date: NSView background color
  • Next by Date: Core data and NSTextView: get the attributed string?
  • Previous by thread: Re: NSView background color
  • Next by thread: Core data and NSTextView: get the attributed string?
  • Index(es):
    • Date
    • Thread