1

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];

还有其他选择吗?

4

1 回答 1

1

Cocoa 定义了指向此类函数的宏,因此您可以这样做以保持一致的样式

例如

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

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

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

于 2012-07-18T11:41:19.773 回答