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.
質問する
3901 次
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 に答える