Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 12.03.2012, 10:57   #1
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

mikser, самый простой и быстрый способ - это заменить сферу на куб и проверять попадание в него банальными сравнениями. Или бот должен быть прецензионным?
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
Yegor вне форума   Ответить с цитированием
Старый 12.03.2012, 14:17   #2
Местный
 
Аватар для mikser
 
Регистрация: 26.01.2009
Сообщений: 1,097
Сказал Спасибо: 178
Имеет 119 спасибок в 84 сообщенях
mikser пока неопределено
По умолчанию

Цитата:
Сообщение от Yegor Посмотреть сообщение
mikser, самый простой и быстрый способ - это заменить сферу на куб и проверять попадание в него банальными сравнениями. Или бот должен быть прецензионным?
Да Да я уже пару дней назад сам до этого дошёл.
На самом деле это решает всё. Оказалось всё настолько просто что
мне даже стало стыдно как я раньше до этого не додумался.
Алгоритм:
  1. Опишем вокруг сферы куб (Сфера вписана в куб, 2D аналог окружность вписана в квадрат)
  2. Если точка лежит за пределами куба -то лежит за пределами сферы //тут отсеятся 90% всех "плохих" точек
  3. Если точка лежит внутри куба {тут начинается самое интересное} Стоп! А что такое Куб? Если взглянуть на "левый нижний угол куба" - это же начало декартовой системы координат. Точнее его зона + + + (где x y z положительны или 0) Как мы только это осознали сразу переводим координаты сферы в новую систему координат {По сути мы переносим точку отсчёта в левый нижний угол куба}
  4. Переводим координаты точки в новую систему координат (так как она лежит внутри куба)
  5. Приводим тип всех координат в Longint и считаем обычной формулой.
    Переполнения не произойдёт потому что куб мал

Добавлено через 16 минут
Правда есть ещё шанс что куб будет занимать всю карту если сфера размером во всю карту или её половину.
Надо подумать как лучше поступить в этом случае.
Масштабирование может помочь но потеряется точность
и надо правильно подобрать коэффицент на который делить //желательно степень двойки
Как его правильно подобрать?
Кто силён в вычислительной геометрии?
__________________
Играю по фэншую используя /allblock, созерцая красоту игрового мира, сосредоточившись на получении энергии Ци при убийстве мобов.
icq=((2*3*(19^2)*37)-1)*9

Последний раз редактировалось mikser, 12.03.2012 в 14:24. Причина: Добавлено сообщение
mikser вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Программинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 12:47.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!