powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Тяпничное кручение земного шарика
14 сообщений из 14, страница 1 из 1
Тяпничное кручение земного шарика
    #39230789
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет человеки.

Много лет назад я писал для себя demo-приложение на OpenGL. Рисует земной шарик. Его надо было
крутить мышкой. Подсвечивать страны. И точками подсвечивать столицы стран и points of interests.
И хотя-бы границы государств. Тоесть ткнул мышкой в GB и подсветил London. И там вспомогательная
инфа. Население там... и все такое.

Сорцов у меня не осталось. Это был Visual C++ / OpenGl (gl.h). Ну и бох с ними.
Не особо печально.

Я использовал полярные координаты Фи, Пси (наклон оси и поворот от 0 меридиана).

Тоесть drag по X вызывал инкремент-декремент Пси. Д. Циклический от -180 до 180.
Тоесть при переполнении величина "переворачивалась".

drag по Y вызывал инкремент-декремент Фи с ограничением о т -90 до 90 градусов.

Артефакты или дефекты:
1) Шарик не провоарачивался через полюса. Можно было наклонить северный полюс на себя на дальше - нет.
2) Если делать drag влевл-вправо - шарик крутися от 0 до 360 с вободно. Но при наклоне полюса на себя
шарик крутился в другой плоскости что для юзера как-то непривычно и не комфортно. А при наклоне
южного полюса на себя - шарик как-бе крутился в другую сторону что также неюзабельно.
3) При углах наклона оси около 45 градусов абсолютная скорость кручения точки просмотра не соответствовала ожидаемой.
Тоесть когда смотришь на экватор - ожидаешь одну скорость а на средних широтах - такую-же что также неюзабельно.

А теперь главный вопрос:

Как уйти от этих дефектов? И сделать кручение естественным будто-бы мышка - это ваша рука а шарих
это мячик который не имеет ограничений свободы.

Шарик планирую задавать центром и двумя ортогональными векторами. Один - смотрит от центра к координате (0,0) , второй
смотрит от центра в северный полюс (0,90)

Вобщем... жду советов. И сорцов.

Скрина все равно нет - но я приаттачиваю для проформы чужой скрин похожий на мой.



P.S. OpenGL и С++ не нужен особо.
Но нужен принцип и смысл.
...
Рейтинг: 0 / 0
Тяпничное кручение земного шарика
    #39230820
д0k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Видеоурок
YouTube Video
...
Рейтинг: 0 / 0
Тяпничное кручение земного шарика
    #39230838
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не то. Уважаю Blender - он сверх избыточен.

Мне пока нужен принцип Document-Model для моего частного случая.

И реакция на MouseMove/MouseButtonDown.
...
Рейтинг: 0 / 0
Тяпничное кручение земного шарика
    #39230928
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот как было:



Вот как хочу сделать:



и действующее ограничение. Угол в 90 градусов между U,V.
...
Рейтинг: 0 / 0
Тяпничное кручение земного шарика
    #39231159
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВот как было:



Вот как хочу сделать:



и действующее ограничение. Угол в 90 градусов между U,V.

так разницы то никакой
...
Рейтинг: 0 / 0
Тяпничное кручение земного шарика
    #39231272
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Крутить-та как? Как крутить та?
...
Рейтинг: 0 / 0
Тяпничное кручение земного шарика
    #39231441
nikichale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

Ну, во-первых у мячика нужно зафиксировать центр (сферы), как-будто он лежит в круглой чаше и может только вращаться вокруг центра. Далее, человек мышкой на экране придавливает некоторую точку (гМоскву) и тащит ее мышкой по экрану (гМосква все время остается под курсором), а шарик при этом должен поворачиваться так, чтобы это обеспечить.
Если такой подход юзабилен - подскажу как пересчитывать точку наблюдения, чтобы данная точка шарика следовала за мышкой (мне проще считать, что вращается не шарик, а точка наблюдения вращается вокруг него).
...
Рейтинг: 0 / 0
Тяпничное кручение земного шарика
    #39231449
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет. Пока забудьте про Москву. Это прикладное.

Главное - катать шарик. С линейной скоростью качения без "прыжков" и ограничителей.
...
Рейтинг: 0 / 0
Тяпничное кручение земного шарика
    #39231455
nikichale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

как же, по вашему, должно выглядеть вращение шарика мышью? Вот ткнул человек в точку x0,y0 экрана, где нарисован шарик, потом переместил курсор в точку x1,y1 экрана, где сработало мышиное событие, что же должно произойти с изображением шарика на экране?
...
Рейтинг: 0 / 0
Тяпничное кручение земного шарика
    #39231457
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я возможно не так выразился. Drag по View-port должен вызывать вращение шарика. Независимо
от того попали вы в землю или нет.

А событие click на какую-то часть гео-объектов мы обсудим чуть позже.
...
Рейтинг: 0 / 0
Тяпничное кручение земного шарика
    #39231469
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton. Drag по View-port должен вызывать вращение шарика. Независимо
от того попали вы в землю или нет.

замечательно - угловая скорость вращения шарика пропорциональна линейной скорости мыша.
ну как трэкбол ладошкой вращать
...
Рейтинг: 0 / 0
Тяпничное кручение земного шарика
    #39231471
nikichale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

Дык, сами же писали:

И сделать кручение естественным будто-бы мышка - это ваша рука а шарих
это мячик который...

и я с этом совершенно согласен - очень естественно крутить шарик КАСАЯСЬ его рукой, и проблем с тем как и куда вращать и с какой скоростью не возникает. Тем более люди давно привыкли к инструменту "лапа" для перемещения плоской карты, который за пределами карты отдыхает... Так что советую вам вернуться в лоно природы и не вращать шарик глазами :)
...
Рейтинг: 0 / 0
Тяпничное кручение земного шарика
    #39231472
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пожалуй - да. Трекбол - хорошая аналогия.
...
Рейтинг: 0 / 0
Тяпничное кручение земного шарика
    #39232109
д0k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonПожалуй - да. Трекбол - хорошая аналогия.

Еще раз.....
Эта аналогия работает только тогда когда ты вращаешь строго
паралельно одной координате( вокруг одной из осей координат).

в реальности
то преобразования гораздо сложнее .

На пальцах, перемещение мыши по экрану это проекция шара на плоскость,
размер этой проекции линейно короче чем фактическое расстояние в пространстве
изза разности длин трехмерном пространстве и проекции
компьтерная графика генерирует артефакты трехметрого восприятия.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Тяпничное кручение земного шарика
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]