ребята ну вы чего..![]()
задачка на знание школьной геометрии..
1. узнаем мировые координаты курсора (например на ближней плоскости отсечения) средствами графической библиотеки.
2. исходя из параметров сферы (координаты центра, радиус) и координат курсора находим точку на сфере через которую проходит прямая от курсора до центра.
3. выбираем начальное приближение, например полюс.
4. выбираем соседа, наиболее близкого к точке из (2). он становится новым приближением.
5. повторяем пункт 4 до тех пор пока расстояние не перестанет уменьшаться.
![]()
a - точка на сфере под курсором; N - полюс
для пункта 5 наверняка есть более эффективный алгоритм, просто написал что первое в голову пришло
EC2 - разработка игры
Мастерская Steam - мои моды для Civilization V
Last Citadel - сайт игроков Warlords III
<div class='quotetop'>Цитата(superregistr * 2.5.2010, 15:21) [snapback]334909[/snapback]</div>какого объекта? сферы чтоль?Peter, все уже предусмотрено в методах OpenGL для выбора объекта на сцене, например, с помощью указателя мыши. Pavel Zachesa был прав.
[/b]
узлы сетки это не объекты open gl
EC2 - разработка игры
Мастерская Steam - мои моды для Civilization V
Last Citadel - сайт игроков Warlords III
<div class='quotetop'>Цитата</div>Может быть вершины многогранника являются таковыми?узлы сетки это не объекты open gl[/b]
(Узлы, в нашем случае, на сколько мне не изменяет память, есть вершины некого многогранника.)
Кстати, чтоб движок не тормозил, надо вводить в экранную область только видимые вершины. Также в зависимости от масштаба использовать подходящие итерации, возможно даже в зависимости от фокуса, к примеру те что прямо перед нами в более высоком разрешении, а те что ближе к "горизонту" в меньшем.
Разработка игры Вселенная: расширяя пределы. Universe: extending the frontier. (UEF)
<div class='quotetop'>Цитата</div>Вообщем и узлы могут выступать как отдельный объект сцены, тогда опенгл будет находить ближайший узел-объект. Но я планирую сделать объектами треугольники. Через конструкторы С++, в которых они будут определяться опенгл-скими методами. Мне кажется, это будет и наиболее логично.какого объекта? сферы чтоль?[/b]
<div class='quotetop'>Цитата</div>Ну да, с учетом того, что опенгл не объектно-ориентирован, то там не может быть объектов в том смысле, в котором мы привыкли пониматьузлы сетки это не объекты open gl[/b]Объектом (трехмерным) там понимается какая-либо простая или составная фигура. Подробно можно прочитать в книге, не помню авторов, OpenGL. Суперкнига, 3-ее издание.
я работал с опен гл меня не требуется просвещать
<div class='quotetop'>Цитата(superregistr * 4.5.2010, 13:20) [snapback]335043[/snapback]</div>Но я планирую сделать объектами треугольники.
[/b]ну удачи
EC2 - разработка игры
Мастерская Steam - мои моды для Civilization V
Last Citadel - сайт игроков Warlords III
<div class='quotetop'>Цитата(Peter * 4.5.2010, 13:47) [snapback]335046[/snapback]</div>я работал с опен гл меня не требуется просвещать
<div class='quotetop'>Цитата(superregistr * 4.5.2010, 13:20) [snapback]335043[/snapback]Но я планирую сделать объектами треугольники.
[/b]ну удачи
[/b][/quote]
Теоретически, через треугольники выполнение процесса будет быстрее.
1. я не думаю что создание 10000+ треугольников это эффективное решение. и я практически уверен в том что это не будет работать быстрее чем элементарная геометрия.
2. выбор треугольника не решает проблему выбора узла.
в прочем делай как хочешь твое право)
EC2 - разработка игры
Мастерская Steam - мои моды для Civilization V
Last Citadel - сайт игроков Warlords III
<div class='quotetop'>Цитата(Peter * 4.5.2010, 14:45) [snapback]335058[/snapback]</div>1. в оригинальной программе как раз создаются только треугольники) если их не создавать, то отображать будет нечего) осталось только определить эти треугольники как объект класса и программа от этого ровным счетом ничего не потеряет.1. я не думаю что создание 10000+ треугольников это эффективное решение. и я практически уверен в том что это не будет работать быстрее чем элементарная геометрия.
2. выбор треугольника не решает проблему выбора узла.
в прочем делай как хочешь твое право)
[/b]
2. известен треугольник значит известны три его узла, перебрать три узла не так сложно, как кажется)))
<div class='quotetop'>Цитата</div>Это самим собой разумеется. Как раз в библиотеке GLUT есть такие методы. У меня в проге строится только внешняя поверхность треугольника, внутренняя не строится, что экономит ресурс видеокарты в 2 раза. На счет остального, думаю, это ненужные излишества.Кстати, чтоб движок не тормозил, надо вводить в экранную область только видимые вершины.[/b]
<div class='quotetop'>Цитата(superregistr * 4.5.2010, 14:56) [snapback]335062[/snapback]</div><div class='quotetop'>ЦитатаЭто самим собой разумеется. Как раз в библиотеке GLUT есть такие методы. У меня в проге строится только внешняя поверхность треугольника, внутренняя не строится, что экономит ресурс видеокарты в 2 раза. На счет остального, думаю, это ненужные излишества.Кстати, чтоб движок не тормозил, надо вводить в экранную область только видимые вершины.[/b]
[/b][/quote]
Тебе придётся ещё многому научится. К сожалению, часто, вместе с приходом знания, уходит энтузиазм...
Разработка игры Вселенная: расширяя пределы. Universe: extending the frontier. (UEF)
<div class='quotetop'>Цитата(sweeper * 28.4.2010, 16:03) [snapback]334541[/snapback]</div>(не могу молчатьафинные преобразования[/b]) аффинные
<div class='quotetop'>Цитата(superregistr * 28.4.2010, 16:44) [snapback]334546[/snapback]</div>а ты тактичныйя не смогу обойтись без аффинных преобразований[/b]![]()
Носителем суверенитета и единственным источником власти в Российской Федерации является её многонациональный народ. Гл.1, ст.3. Конституции РФ
- Папа, а у царей бывает мания величия? - Иногда бывает. - А кем они тогда себя мнят? - Народом.
Я взрослая женщина - и я семь лет читала форумы. Настя
Если царь говорит, что чем ниже цена рубля, тем больше доход, то удивляться последствиям его правления не приходится. lada
На данном этапе развития страны считаю наиболее важным отстранить от управления бездарей-троечников в пользу тех людей, которые могут мыслить системно хотя бы на год вперёд. Винни
Многие склонны путать два понятия: «Отечество» и «Ваше превосходительство». Салтыков-Щедрин
С плохими законами и хорошими чиновниками вполне можно править страной. Но если чиновники плохи, не помогут и самые лучшие законы. Бисмарк
Как только дети, жены и любовницы начинают заниматься бизнесом - жди беды. Лукашенко
Т.к. ремоторизацию Ан-2 наладить не удалось, принято решение построить десяток Звезд Смерти для секторального захвата галактики. Рогозин
Это было не падение, Маск показал всем красненькую пипирку. Павел Чичиков 5-jan-2021 inv-ing
<div class='quotetop'>Цитата(superregistr * 3.5.2010, 22:38) [snapback]334987[/snapback]</div><div class='quotetop'>Цитата(Дядька * 3.5.2010, 20:19) [snapback]334970[/snapback]Твои бы слова да всем бы в ушикстати, из почти правильных треугольников одинакового размера сферу собрать можно, чем треугольник не тайл?
[/b]
[/b][/quote]
что ж ты сразу сюда не направил, я ведь не в курсе где и чего кипит
давненько алгоритм построения сферы тестил (такой же как Peter предлагает),
еще раньше написал алгоритм для генерации карты (с климатом, ландшафтом и реками) - красиво получалось, но увы для 2D, для сферы нужно все в полярных координатах, это уже иная математика![]()
идеи генерации карты могу выложить, если интересно.
<div class='quotetop'>Цитата(Дядька * 6.5.2010, 19:07) [snapback]335330[/snapback]</div>было бы интересно узнать подробностичто ж ты сразу сюда не направил, я ведь не в курсе где и чего кипит
давненько алгоритм построения сферы тестил (такой же как Peter предлагает),
еще раньше написал алгоритм для генерации карты (с климатом, ландшафтом и реками) - красиво получалось, но увы для 2D, для сферы нужно все в полярных координатах, это уже иная математика![]()
идеи генерации карты могу выложить, если интересно.
[/b]
полярные координаты - зачем они? если есть узлы, можно привязываться к ним..
EC2 - разработка игры
Мастерская Steam - мои моды для Civilization V
Last Citadel - сайт игроков Warlords III
<div class='quotetop'>Цитата(Peter * 7.5.2010, 7:24) [snapback]335366[/snapback]</div>подробности вечерком,было бы интересно узнать подробности
полярные координаты - зачем они? если есть узлы, можно привязываться к ним..
[/b]
<strike>полярные</strike> сферические координаты для использования геометрии на сфере:
http://bse.sci-lib.com/article107979.html
http://wapedia.mobi/ru/%D0%A1%D1%84%D0%B5%D1%80%D0%B0
полезно для определения расстояний, построения кривых,
наверняка есть численные методы для сферической системы координат (построение кривых),
удобно использовать как тайловую систему координат (юниты) так и сферическую (генерация карты),
кстати, как индексировать тайлы собираетесь ?
<div class='quotetop'>Цитата(Дядька * 6.5.2010, 19:07) [snapback]335330[/snapback]</div><div class='quotetop'>Цитата(superregistr * 3.5.2010, 22:38) [snapback]334987[/snapback]<div class='quotetop'>Цитата(Дядька * 3.5.2010, 20:19) [snapback]334970[/snapback]Твои бы слова да всем бы в ушикстати, из почти правильных треугольников одинакового размера сферу собрать можно, чем треугольник не тайл?
[/b]
[/b][/quote]
что ж ты сразу сюда не направил, я ведь не в курсе где и чего кипит
давненько алгоритм построения сферы тестил (такой же как Peter предлагает),
еще раньше написал алгоритм для генерации карты (с климатом, ландшафтом и реками) - красиво получалось, но увы для 2D, для сферы нужно все в полярных координатах, это уже иная математика![]()
идеи генерации карты могу выложить, если интересно.
[/b][/quote]
Ничего страшного, сферические координаты только по началу пугают, а привыкнешь, будут не сложнее декартовых. Вообщем, неохото пересказывать тему (слишком долго). Да и в Копилке можно посмотреть наработки. В кратце, мы остановились на трехмерной сфере, состоящей из почти равносторонних треугольников. Вся информация о поверхости будет задаваться в узлах.
ЗЫ Интересно, почитаю.
<div class='quotetop'>Цитата</div>программку в студиюеще раньше написал алгоритм для генерации карты (с климатом, ландшафтом и реками) - красиво получалось, но увы для 2D[/b]
<div class='quotetop'>Цитата(superregistr * 7.5.2010, 10:17) [snapback]335381[/snapback]</div>программка была на VBA, прошло очень много времени, скорее всего не сохранилась, но алгоритм в общих чертах помню:программку в студию
[/b]
сейчас нет времени на подробности:
строятся 6 +/- n континентов = центральная линия -> полином (горный хребет, имеет разную ширину и высоту вдоль длины) + 2 береговые линии (полиномы), западная кривая гораздо ближе к хребту,
также строим несколько (10...15 шт) крупных островов типа Мадагаскар,
климат в виде кривых вокруг определенных широт (северная, южная границы), границы зон могут пересекаться, зоны даже могут поглощать промежуточные.
реки от хребта в сторону большей площади, центральная линия реки _|_ ц.л. континента, дальше та же схема что и для хребта континента,
высоты - максимальные на хребте (высоты хребта = полином), потом плавное снижение вдоль русел к океану, долины рек: западный берег высокий, восточный низкий и сглаживаем к ближайшей реке,
реки рисуем только после отрисовки всех континентов и островов (т.к. они могут налезать друг на друга, образуя всякие пангеи)
<div class='quotetop'>Цитата</div>Да сильно кратенько, но возможно пригодится для уточнения некоторых спорныхстроятся 6 +/- n континентов = центральная линия -> полином (горный хребет, имеет разную ширину и высоту вдоль длины) + 2 береговые линии (полиномы), западная кривая гораздо ближе к хребту,
также строим несколько (10...15 шт) крупных островов типа Мадагаскар,
климат в виде кривых вокруг определенных широт (северная, южная границы), границы зон могут пересекаться, зоны даже могут поглощать промежуточные.
реки от хребта в сторону большей площади, центральная линия реки _|_ ц.л. континента, дальше та же схема что и для хребта континента,
высоты - максимальные на хребте (высоты хребта = полином), потом плавное снижение вдоль русел к океану, долины рек: западный берег высокий, восточный низкий и сглаживаем к ближайшей реке,
реки рисуем только после отрисовки всех континентов и островов (т.к. они могут налезать друг на друга, образуя всякие пангеи)[/b]моментов...
Разработка игры Вселенная: расширяя пределы. Universe: extending the frontier. (UEF)