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

本文详细介绍了CCPoint类的实现方式,包括初始化方法、属性获取与设置、比较操作等,并提供了与其他类如CGPoint的互操作性示例。
// // 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


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值