2013-09-29 2 views
-1

Мое приложение имеет круг, который разделен на 12 равных пирогов, то есть 1 пирог на каждую 1-часовую плиту. Мне нужно иметь конкретную функцию жесты для каждого пирога, поэтому я подумал о назначении конкретный цветовой код для каждого пирога, чтобы я мог определить цвет относительно того, где пользователь постучал в соответствии с цветом пирога.Создайте нефункциональное изображение только для видимости

Так что сначала мне нужно, чтобы вы помогли мне определить цветовой код при каждом нажатии. Во-вторых, мне нужна помощь с нефункциональным изображением над этими 12 пирогами, чтобы пользователь не мог видеть эти 12 разных цветов пирогов и видеть только 1 круг с одним цветом, но жесты жеста должны всегда выполняться на этих 12 пирогах под моим 1 цветной круг. Позднее мне также нужна помощь в свитках.

Я реализовал сегментированные scrollviews в своем приложении, так что если пользователь отбирает слева направо, новый сегмент будет отображаться и наоборот. Приложение имеет только 2 сегментарных вида прокрутки. Один для добавления текста в эти пироги при нажатии и другие для отображения текста в этих пирогах при нажатии. Я доступен в Teamviewer и скайпе, так что любой способ помощи будет высоко оценен.

+0

Я реализовал 2 сегментированных свитка, и они полностью функциональны. У меня есть 12 кругов круга прямо сейчас, и я хочу реализовать жест нажатия на каждом пироге в соответствии с цветовым кодом. Я попытался перевести пирог на клик кнопки и ее работы отлично, но я хочу, чтобы перевод пирога нажал на пирог, а не на кнопку. –

+0

Почему -2 парня? Вы должны взглянуть на это приложение, и вы узнаете, что получение цветового кода для выполнения определенного жестов - это, возможно, лучшее, что можно сделать с этим приложением. –

+0

Зачем вам нужно определять цвет? Простой взгляд на угол линии, соединяющей положение касания и центр круга (заданный 'atan2 (centre.y - touch.y, centre.x - touch.x)'), и вы узнаете, какой сегмент вы находитесь. – msgambel

ответ

1

Кажется, что у вас есть 2 концентрических круга с различными радиусами. Чтобы достичь эффекта, который вы ищете, вам просто нужно проверить угол линии между касанием пользователей и центром кругов. Тогда вы просто проверить длину линии, чтобы увидеть, какой круг вы находитесь в Попробуйте:.

// Find the pie segment you are in. Angle in radians. 
float angle = atan2(centre.y - touch.y, centre.x - touch.x)) 

// Use the angle to figure out which segment the user tapped in. You'll have to 
// figure out the angles for the 12 segments on your own! 
if(angle > 2.7489 || angle < -2.7489){ 

} 

// Compute the length of the line. 
float dx = centre.x - touch.x; 
float dy = centre.y - touch.y; 
float length = sqrt(dx * dx + dy * dy); 

// Check if the user touched the inner circle. 
if(length <= radius1){ 

} 
// Check if the user touched the outer circle. 
else if(length <= radius2){ 

} 
// The user tapped outside both circles. 
else{ 

} 

Оттуда, вы просто добавить код, который нужно изменить расположение любого круга. Надеюсь, это поможет!

+0

Может ли плз помочь мне с помощью значений угла всего за 1 пирог? как говорят от 12'o часов до 1'o часов –

+0

Прочитайте документацию по радианам и 'atan2', и вы поймете это. – msgambel

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