2011-02-06 2 views
1

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

ответ

2

Рад я помню triginometry


-(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,
[view degreesTorotateObjectWithPosition:view.frame.origin
andTouchPoint:[touch locationInView:parentView]] //Note: parentView = The view that your object to rotate is sitting in.

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

Успехов,

Aurum Aquila

Смежные вопросы