0

度

赤い線は、アンカーポイントを中心に回転している UIView です。私が達成したいのは、指を赤い円の上に置いたまま緑色の円の周りをドラッグすると、その赤い線が指に沿って移動することです。でも、角度がわからないとできない。どうやって数えますか?

4

2 に答える 2

1

ピタゴラスの定理を使用して半径を計算できます。この場合、円の中心は x:152、y:0 であることがわかります。タッチ位置は x1, y1 になり、足を計算するのに十分な情報が得られます。コード内:

CGPoint center = CGPointMake(152.0f, 0.0f);
CGPoint touchPoint = [gestureRecognizer locationInView:yourView];
float xLeg = fabs(center.x - touchPoint.x);
float yLeg = fabs(touchPoint.y);
angle = atan(xLeg / yLeg);
//float radius = sqrt(pow(xLeg, 2) + pow(yLeg, 2));

それが役に立てば幸い!

注: 文言の変更を反映するように編集されました。元の質問は半径を尋ねました。

于 2013-05-03T14:08:56.700 に答える