作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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/
我是一名优秀的程序员,十分优秀!