oc_stude13
来源:互联网 发布:天刀少女捏脸数据导入 编辑:程序博客网 时间:2024/06/04 01:15
//内容:两个圆的状态、相切、交、离//日期:2015.3.12//作者:sekey#import <Foundation/Foundation.h>#import <math.h>@interface Point2D : NSObject{ double _x; // 圆心x double _y; // 圆心y}- (void)setX:(double)x andY:(double)y;- (double)x;- (double)y;@end@implementation Point2D- (void)setX:(double)x andY:(double)y{ _x = x; _y = y; NSLog(@"设置圆心为(%lf, %lf)", _x, _y);}- (double)x{ return _x;}- (double)y{ return _y;}@end//--------------------------------------------@interface Circle : NSObject{ double _radius; // 半斤 Point2D * _point;}- (void)setCirclePoint:(Point2D *)p andRadius:(double)radius;- (Point2D *)point;- (double)radius;- (void)overCircleWithOther:(Circle *)c;@end@implementation Circle- (void)setCirclePoint:(Point2D *)p andRadius:(double)radius{ _point = p; _radius = radius; NSLog(@"设置圆半径为%lf", _radius);}- (Point2D *)point{ return _point;}- (double)radius{ return _radius;}- (void)overCircleWithOther:(Circle *)other{ double sumRadius = _radius + [other radius]; double distance = sqrt(pow(([[self point] x] - [[other point] x]), 2) + pow(([[self point] y] - [[other point] y]), 2)); if(sumRadius > distance) NSLog(@"两圆相交"); else if(sumRadius == distance) NSLog(@"两圆相切"); else NSLog(@"两圆相离");}@endint main(void){ Point2D * p1 = [Point2D new]; Circle * c1 = [Circle new]; [c1 setCirclePoint:p1 andRadius:1]; [[c1 point] setX:0 andY:0]; Point2D * p2 = [Point2D new]; Circle * c2 = [Circle new]; [c2 setCirclePoint:p2 andRadius:2]; [[c2 point] setX:0 andY:3]; [c1 overCircleWithOther:c2]; return 0;}
0 0