2

I'm new to iOS, i am trying to develop a freehand drawing app, using uibezierPath.is there a way to calculate or receive the total line length, even if i drew straight line, curved or a circle. i am using addline on the the touchmove method, and i don't have any control points.

4

2 に答える 2

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

このメソッドを任意のメソッドで呼び出して、 内の 2 つの間の角度を見つけることができCGPointsますUIView

これが役に立てば幸いです:-)

于 2013-06-11T07:56:35.220 に答える
0

線が曲線であるか直線であるかに関係なく、任意の 2 点間の距離を見つけることができます。(線の長さを取得する方法がわかりません)。線が直線の場合、2 点間の距離は線の距離と等しくなければなりません。

このコードを試して、

- (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)] は、多くの人がよく知っている一般的な方法です。

お役に立てれば :-)

于 2013-06-13T07:29:58.917 に答える