как повернуть UIView, чтобы стоять перед точкой - PullRequest
1 голос
/ 07 февраля 2011

У меня есть UIView, который я хочу вращать, когда я перемещаю палец по экрану (как по кругу).Я хочу, чтобы UIView вращался так, чтобы он смотрел на мою точку соприкосновения.Затем я хочу выстрелить что-нибудь из моего UIView (например, пули) в направлении, к которому смотрит UIView.Любые идеи ???

1 Ответ

2 голосов
/ 07 февраля 2011

Рад, что помню тригонометрию


-(void)degreesToRotateObjectWithPosition:(CGPoint)objPos andTouchPoint:(CGPoint)touchPoint{

   float dX = touchPoint.x-objPos.x;        // distance along X
   float dY = touchPoint.y-objPos.y;        // distance along Y
   float radians = atan2(dY, dX);          // tan = opp / adj

   //Now we have to convert radians to degrees:
   float degrees = radians*M_PI/360;

   return degrees;
}

Как только у вас есть хороший метод, просто сделайте это:

CGAffineTransform current = view.transform;

[view setTransform:CGAffineTransformRotate(current,<br>                 [view degreesTorotateObjectWithPosition:view.frame.origin <br>                                  andTouchPoint:[touch locationInView:<b>parentView</b>]]

//<b>Note: parentView = The view that your object to rotate is sitting in.</b>

Это почти весь код, который вам понадобитсяматематика верна, но я не уверен насчет вещей setTransform.Я в школе пишу это в браузере.Вы должны быть в состоянии понять это отсюда.

Удачи,

Aurum Aquila

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...