使用+或 - 运算符对两个CGPoints进行算术运算

时间:2013-08-03 20:33:11

标签: objective-c cocoa-touch math cgpoint

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

这可能吗?

2 个答案:

答案 0 :(得分:9)

这是@ipmcc建议的“东西”:C ++运算符重载。 警告:请勿在家中执行此操作。

CGPoint operator+(const CGPoint &p1, const CGPoint &p2)
{
    CGPoint sum = { p1.x + p2.x, p1.y + p2.y };
    return sum;
}

答案 1 :(得分:3)

不幸的是,你不能在struct上使用算术运算符。你能做的最好的就是一个功能:

CGPoint NDCGPointMinusPoint(CGPoint p1, CGPoint p2)
{
    return (CGPoint){p1.x-p2.x, p1.y-p2.y};
}