36 var count = [someColors
count];
41 var distance = 1.0 / (count - 1),
45 for (var i = 0; i < count; i++)
47 [locations addObject:location];
56 if (
self = [super init])
59 count = [someColors
count],
61 for (var i = 0; i < count; i++)
62 cgColors.push(
CGColorCreate(colorSpace, [someColors[i] components]));
69 - (void)drawInRect:(CGRect)rect angle:(
float)angle
81 angle = ((angle % 360.0) + 360.0) % 360.0;
84 startPoint = _CGPointMake(_CGRectGetMinX(rect), _CGRectGetMinY(rect));
85 else if (angle < 180.0)
86 startPoint = _CGPointMake(_CGRectGetMaxX(rect), _CGRectGetMinY(rect));
87 else if (angle < 270.0)
88 startPoint = _CGPointMake(_CGRectGetMaxX(rect), _CGRectGetMaxY(rect));
90 startPoint = _CGPointMake(_CGRectGetMinX(rect), _CGRectGetMaxY(rect));
104 var radians = PI * angle / 180.0,
105 length = ABS(_CGRectGetWidth(rect) * COS(radians)) + ABS(_CGRectGetHeight(rect) * SIN(radians));
107 endPoint = _CGPointMake(startPoint.x + length * COS(radians),
108 startPoint.y + length * SIN(radians));
110 [
self drawFromPoint:startPoint
toPoint:endPoint
options:CPGradientDrawsBeforeStartingLocation | CPGradientDrawsAfterEndingLocation];
114 - (void)drawFromPoint:(NSPoint)startingPoint toPoint:(NSPoint)endingPoint options:(NSGradientDrawingOptions)options