如何在NSPoint上定义基本几何运算?

时间:2012-07-18 11:35:54

标签: objective-c cocoa

NSPoint是Cocoa中用于表示平面中某个点的C结构。

如何在Objective-C风格的NSPoint上翻译,旋转和执行其他几何操作?

到目前为止,我正在使用C函数进行这些计算,但在我看来,其余代码看起来不太好。

-(NSPoint) rotateAroundNSPoint: (NSPoint)origin  pointToRotate:(NSPoint)point andDegreesAngle:(float)angleD;
NSPoint rotateAround(NSPoint origin, NSPoint initialPos, float angleDegrees)


/* C-style function */
NSPoint pointD = rotateAround(point000, point001, 72*9);
/* Objective-C method */
NSPoint pointE = [self rotateAroundNSPoint:point000 pointToRotate:point001 andDegreesAngle:72*12];

还有其他选择吗?

1 个答案:

答案 0 :(得分:1)

Cocoa定义指向这样的函数的宏,这样你就可以保持一致的样式

e.g。

#define NSPointRotateAround(origin, initialPos, angleDegrees) rotateAround(origin, initialPos, angleDegrees)

它仍然会调用相同的代码,只是看起来有点整洁。您也可以将几何函数移动到公共文件中,不需要将它们与类关联

注意:我只是看了,cocoa实际上使用了内联函数,所以你也可以这样做(调用代码看起来都是一样的)