iphone-common-codes-ccteam源代码 CCPoint.m

//
// CCPoint.m
// CCFC
//
// Created by xichen on 11-12-17.
// Copyright 2011年 ccteam. All rights reserved.
//


#import "CCPoint.h"
#import "CCCommon.h"
#import "CCNSNumber.h"


@implementation CCPoint




- (id)initWithX:(CGFloat)aX withY:(CGFloat)aY
{
COMMON_INIT_BEGIN

x = aX;
y = aY;

COMMON_INIT_END
}


+ (id)pointWithX:(CGFloat)aX withY:(CGFloat)aY
{
CCPoint *p = [[CCPoint alloc] initWithX:aX withY:aY];
if(p == nil)
return nil;

return [p autorelease];
}


- (id)initWithCGPoint:(CGPoint)point
{
COMMON_INIT_BEGIN

x = point.x;
y = point.y;

COMMON_INIT_END
}


+ (id)pointWithCGPoint:(CGPoint)point
{
CCPoint *p = [[CCPoint alloc] initWithCGPoint:point];
if(p == nil)
return nil;


return [p autorelease];
}


- (void)dealloc
{
[super dealloc];
}




- (BOOL)isEqualTo:(CCPoint *)anotherPoint
{
return (FLOAT_EQUAL_TO_FLOAT(x, anotherPoint->x)
&& FLOAT_EQUAL_TO_FLOAT(y, anotherPoint->y));
}


- (BOOL)isEqualToCGPoint:(CGPoint)point
{
return (FLOAT_EQUAL_TO_FLOAT(x, point.x)
&& FLOAT_EQUAL_TO_FLOAT(y, point.y));
}


- (BOOL)isZero
{
return (FLOAT_EQUAL_TO_ZERO(x) && FLOAT_EQUAL_TO_ZERO(y));
}




- (void)setX:(CGFloat)newX withY:(CGFloat)newY
{
x = newX;
y = newY;
}


- (BOOL)isInRect:(CGRect)rect
{
CGFloat rectX = rect.origin.x;
CGFloat rectY = rect.origin.y;
CGFloat rectWidth = rect.size.width;
CGFloat rectHeight = rect.size.height;

if(x < rectX
||(x > rectX + rectWidth)
|| y < rectY
|| y > rectY + rectHeight)
{
return FALSE;
}

return TRUE;
}


//判断某个点是否在某个区域里
+ (BOOL)isInRect:(CGPoint)p rect:(CGRect)rect
{
CGFloat rectX = rect.origin.x;
CGFloat rectY = rect.origin.y;
CGFloat rectWidth = rect.size.width;
CGFloat rectHeight = rect.size.height;

CGFloat pX = p.x;
CGFloat pY = p.y;

if(pX < rectX
||(pX > rectX + rectWidth)
|| pY < rectY
|| pY > rectY + rectHeight)
{
return FALSE;
}

return TRUE;
}


- (CGPoint)toCGPoint
{
return CGPointMake(x, y);
}


// get the distance of two CCPoint
- (CGFloat)distanceToCCPoint:(CCPoint *)anotherPoint
{
return sqrt((x - anotherPoint->x) * (x - anotherPoint->x)
+ (y - anotherPoint->y) * (y - anotherPoint->y));
}


@end

 

可能有更新:

 googlecode链接地址:http://code.google.com/p/iphone-common-codes-ccteam/source/browse/trunk/CCFC/files/CCPoint.m

 github地址: https://github.com/cxsjabc/iphone-common-codes-ccteam/tree/master/CCFC/files/CCPoint.m

 

posted @ 2012-01-03 14:00  cc_team  阅读(215)  评论(0编辑  收藏  举报