在 Objective-C 中,我开始使用CGPoints
,当我需要添加其中两个时,我正在这样做:
CGPoint p1 = CGPointMake(3, 3);
CGPoint p2 = CGPointMake(8, 8);
CGPoint p3 = CGPointMake(p2.x-p1.x, p2.y-p1.y);
我希望能够做到:
CGPoint p3 = p2 - p1;
那可能吗?
在 Objective-C 中,我开始使用CGPoints
,当我需要添加其中两个时,我正在这样做:
CGPoint p1 = CGPointMake(3, 3);
CGPoint p2 = CGPointMake(8, 8);
CGPoint p3 = CGPointMake(p2.x-p1.x, p2.y-p1.y);
我希望能够做到:
CGPoint p3 = p2 - p1;
那可能吗?
这是@ipmcc 建议的“东西”:C++ 运算符重载。警告:不要在家里这样做。
CGPoint operator+(const CGPoint &p1, const CGPoint &p2)
{
CGPoint sum = { p1.x + p2.x, p1.y + p2.y };
return sum;
}
struct
不幸的是,您不能在 s 上使用算术运算符。你能做的最好的就是一个函数:
CGPoint NDCGPointMinusPoint(CGPoint p1, CGPoint p2)
{
return (CGPoint){p1.x-p2.x, p1.y-p2.y};
}