gpt4 book ai didi

objective-c - 如何在 NSPoint 上定义基本的几何运算?

转载 作者:行者123 更新时间:2023-12-03 17:14:19 35 4
gpt4 key购买 nike

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

还有其他选择吗?

最佳答案

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

例如

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

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

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

关于objective-c - 如何在 NSPoint 上定义基本的几何运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11540407/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com