ios检测线角度或度数

时间:2013-06-11 06:29:39

标签: iphone ios drawing uibezierpath

我是 iOS 的新手,我正在尝试使用uibezierPath开发一个徒手绘图应用。有没有办法计算或接收总线长度,即使我绘制直线,弯曲或圆形。 我在touchmove方法上使用addline,我没有任何控制点。

2 个答案:

答案 0 :(得分:8)

touchesBegan方法中,您可以使用此代码

{
UITouch * touch = [touches anyObject];
CGPoint present = [touch locationInView:self];
CGPoint previous = [touch previousLocationInView:self];
CGFloat angle = [self getAngle:present :previous];
}

- (float) getAngle:(CGPoint)a :(CGPoint)b
{
    int x = a.x;
    int y = a.y;
    float dx = b.x - x;
    float dy = b.y - y;
    CGFloat radians = atan2(-dx,dy);        // in radians
    CGFloat degrees = radians * 180 / 3.14; // in degrees
    return angle;
}

您可以通过任何方法调用此方法,以查找CGPoints中两个UIView之间的角度。

希望这有助于: - )

答案 1 :(得分:0)

无论线条是弯曲还是直线,您都可以找到任意两点之间的距离。 (我不知道如何获得线的长度)。如果直线是直线,则两点之间的距离应等于直线的距离。

试试这段代码,

- (double)getDistance:(CGPoint)one :(CGPoint)two
{
    return sqrt((two.x - one.x)*(two.x - one.x) + (two.y - one.y)*(two.y - one.y));
}

这是许多人都熟悉的常用方法,(sqrt)[(x2-x1)(x2-x1)+(y2-y1)(y2-y1)]。

希望这会有所帮助: - )