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];
还有其他选择吗?
答案 0 :(得分:1)
Cocoa定义指向这样的函数的宏,这样你就可以保持一致的样式
e.g。
#define NSPointRotateAround(origin, initialPos, angleDegrees) rotateAround(origin, initialPos, angleDegrees)
它仍然会调用相同的代码,只是看起来有点整洁。您也可以将几何函数移动到公共文件中,不需要将它们与类关联
注意:我只是看了,cocoa实际上使用了内联函数,所以你也可以这样做(调用代码看起来都是一样的)