Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
JavDev
0 / 0 / 1
Регистрация: 12.03.2016
Сообщений: 23
#1

Вращение фигуры в SurfaceView - Программирование Android

17.04.2017, 12:27. Просмотров 513. Ответов 16
Метки нет (Все метки)

Сейчас фигура вращается с помощью функции glRotate, все работает, и она вращается при запуске. Как сделать, чтобы фигура вращалась не автоматически, а при касании пальцем экрана? То есть, водишь пальцем по экрану и поворачиваешь фигуру.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2017, 12:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вращение фигуры в SurfaceView (Программирование Android):

SurfaceView не отображается - Программирование Android
Учусь программировать по книге П. Дейтел, Х. Дейтел "Android для программистов. Создаём приложения". Делаю уже 5 приложение, но это не...

Ошибка в SurfaceView - Программирование Android
есть игра. отрисовка идет через SurfaceView и поток привязанный к нему. ошибка возникает в следующем моменте - я открываю сам игровой...

SurfaceView + onKeyDown - Программирование Android
Проблемка очень простая - не реагирует на onKeyDown в классе, наследующем SurfaceView. Исправьте мою криворукость, пожалуйста, подскажите,...

Восстановление SurfaceView - Программирование Android
Кто работал с SurfaceView, помогите! Рисую на SurfaceView с помощью onTouchEvent(), без потока, все замечательно рисует, сворачиваю...

Мерцание в SurfaceView - Программирование Android
Всем привет! Рисую на SurfaceView фон и на нем анимированные объекты. Кадры беру из атласа. Появилось мерцание, причем фон не мерцает а...

Работа с SurfaceView - Программирование Android
Отрисовка в SurfaceView никогда не вызывала трудностей, до тех пор, пока не запустил приложение на телефоне с экраном 1920х1080px. Фпс упал...

16
vxg
Модератор
3208 / 2011 / 230
Регистрация: 13.01.2012
Сообщений: 7,790
17.04.2017, 17:53 #2
JavDev, поймать тач событие
1
JavDev
0 / 0 / 1
Регистрация: 12.03.2016
Сообщений: 23
17.04.2017, 20:20  [ТС] #3
Цитата Сообщение от vxg Посмотреть сообщение
JavDev, поймать тач событие
Как я понимаю, создаем метод onTouchEvent, получаем координаты X и Y. Как в таком случае реализовать перемещение фигуры по экрану я понимаю, а как сделать, чтобы фигура вращалась, оставаясь на месте?
Сейчас вращение задается через
Java
1
gl.glRotatef(0.0f, 0.0f, 1.0f, 0.0f);
0
vxg
Модератор
3208 / 2011 / 230
Регистрация: 13.01.2012
Сообщений: 7,790
17.04.2017, 20:42 #4
JavDev, например условно принять что драг на икс процентов ширины экрана соответствует повороту на игрек градусов вокруг некой оси
1
JavDev
0 / 0 / 1
Регистрация: 12.03.2016
Сообщений: 23
17.04.2017, 20:47  [ТС] #5
Цитата Сообщение от vxg Посмотреть сообщение
JavDev, например условно принять что драг на икс процентов ширины экрана соответствует повороту на игрек градусов вокруг некой оси
А проще это не реализовать?
0
vxg
Модератор
3208 / 2011 / 230
Регистрация: 13.01.2012
Сообщений: 7,790
17.04.2017, 21:30 #6
JavDev, по-моему проще уже некуда
0
JavDev
0 / 0 / 1
Регистрация: 12.03.2016
Сообщений: 23
17.04.2017, 21:44  [ТС] #7
Цитата Сообщение от vxg Посмотреть сообщение
по-моему проще уже некуда
Видимо я не понял мысль
0
vxg
Модератор
3208 / 2011 / 230
Регистрация: 13.01.2012
Сообщений: 7,790
18.04.2017, 08:48 #8
JavDev, вы надеялись что у серфейса есть специально для вашей сцены и вашей фигуры событие повернуть_через_драг)?
1
JavDev
0 / 0 / 1
Регистрация: 12.03.2016
Сообщений: 23
20.04.2017, 19:59  [ТС] #9
Цитата Сообщение от vxg Посмотреть сообщение
JavDev, вы надеялись что у серфейса есть специально для вашей сцены и вашей фигуры событие повернуть_через_драг)?
Ну сейчас то фигура крутится автоматически вокруг Y Думал, что сделать то же самое, но в ручном режиме будет не очень сложно. А как посчитать % ширины экрана не понимаю(
0
vxg
Модератор
3208 / 2011 / 230
Регистрация: 13.01.2012
Сообщений: 7,790
20.04.2017, 20:39 #10
Цитата Сообщение от JavDev Посмотреть сообщение
посчитать % ширины экрана
это лишь пример - вы можете привязаться к пикселям или дп или чему угодно
а вообще
Java
1
2
3
4
5
        DisplayMetrics metrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metrics);
        
        float w = metrics.widthPixels;
        float h = metrics.heightPixels;
0
JavDev
0 / 0 / 1
Регистрация: 12.03.2016
Сообщений: 23
22.04.2017, 22:27  [ТС] #11
Цитата Сообщение от vxg Посмотреть сообщение
это лишь пример - вы можете привязаться к пикселям или дп или чему угодно
а вообще
А к углу поворота никак?
0
vxg
Модератор
3208 / 2011 / 230
Регистрация: 13.01.2012
Сообщений: 7,790
23.04.2017, 07:58 #12
JavDev, как можно привязать угол поворота к углу поворота? Или вы о вращении устройства? Возможно все главное знать что хочешь
1
JavDev
0 / 0 / 1
Регистрация: 12.03.2016
Сообщений: 23
23.04.2017, 13:20  [ТС] #13
Цитата Сообщение от vxg Посмотреть сообщение
JavDev, как можно привязать угол поворота к углу поворота? Или вы о вращении устройства? Возможно все главное знать что хочешь
То есть, создаю onTouchEvent, ловлю событие, а далее передвижение пальца на % ширины экрана приравнять к определенному углу? Например, пока палец передвигается от центра к краю экрана, фигура поворачивается на 360 градусов вокруг оси, так?
А еще, не подскажете, как сделать запуск построения фигуры не при старте приложения, а по клику кнопки в activity? То есть я добавляю с экрана координаты X и Y, нажимаю кнопку и запускается построение с этими координатами? В интернете искал искал, но так и не нашел, везде построение запускается вместе со стартом приложения...Пытался с вызовом onDrawFrame что-то сделать, но ничего толком не вышло, координаты передаю, но перезапустить построение с ними не получается
0
vxg
Модератор
3208 / 2011 / 230
Регистрация: 13.01.2012
Сообщений: 7,790
23.04.2017, 16:05 #14
JavDev, что мешает крутить в draw построение пустоты, а при нажатии кнопки начинать таки строить то что нужно?
1
JavDev
0 / 0 / 1
Регистрация: 12.03.2016
Сообщений: 23
23.04.2017, 16:31  [ТС] #15
Цитата Сообщение от vxg Посмотреть сообщение
JavDev, что мешает крутить в draw построение пустоты, а при нажатии кнопки начинать таки строить то что нужно?
Не знаю как "при нажатии кнопки начинать таки строить то что нужно". Я хотел сделать, чтобы изначально координаты были нулевые, соотв. ничего не отображалось, потом отправлять нужные координаты и уже перестроить. Вот нужные координаты я подцепил из edittext и отправил в private float vertices[] = {}, но запустить с ними не получается. Как понимаю, за построение отвечает метод public void onDrawFrame(), а в нем object3D.Draw(gl);
0
23.04.2017, 16:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2017, 16:31
Привет! Вот еще темы с ответами:

SurfaceView - широкий рисунок - Программирование Android
Проблема в ограничениях размеров. Создаю класс: public class D3D extends SurfaceView { public D3D(Context...

Обработка касаний в SurfaceView - Программирование Android
Всем привет! Для обработки касаний в surfaceview определяю OnTouchEvent () но касания не обрабатываются. Контролирую через Log.d(). В чем...

Узнать фон SurfaceView - Программирование Android
Как узнать фон SurfaceView? mSurfaceViewLeft = (SurfaceView)findViewById(R.id.surfaceViewLeft); mSurfaceViewRight =...

SurfaceView&Canvas - Программирование Android
Подскажите, как реализовать отображение, например, карандашика, когда рисуешь на Canvas в SurfaceView. В какую сторону копать, чтобы такое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru