|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jan 2004
Адрес: На чердаке.
Сообщений: 1,112
|
Можно и так.
А то сейчас мы еще на два листа распишем, про одно и то же... Но возвращаясь к сути топика. До сих пор мы говорили про систему, где элементом массива являлась точка, ассоциируемая с "цетром" гекса. В данном же случае нуна учитывать грани. Связь идет от грани к грани. Тут есть два решения.
__________________
...Тебе страшно? Мне - нет. |
|
|||||
Регистрация: Jan 2004
Адрес: На чердаке.
Сообщений: 1,112
|
Либо вводить систему, где элементами массива будут углы гексов (то есть тоже самое) лишь опять со смещение и смотреть свободные связи - для каждой точки - три соседние.
Либо - что более инетерсно - отслеживать для каждого гекса именно связи с соседними клетками. Это более абстрактное решение, но более перспективное.
__________________
...Тебе страшно? Мне - нет. |
|
|||||
как вариант:
2 объекта: ребро и гекс. гекс содержит 6 ссылок на свои ребра, гекс содержит свои координаты (? нужно ли или пусть этим ребра занимаються %)) ) 1 ребро может принадлежать 2 соседствующим гексам (ребро через которое они соседствуют, общее ребро). ребро имеет состояния: может закрашиваться, закрашено, не может закрашиваться гекс может устанавливать состояния ребра в зависимости от ситуации и его состояния. храним гексы в одномерном массиве %) основная задача в начала их расставить. сделав такую байду мы может успешно хранить не только гексы но и квадраты, треугольники и прочее... Последний раз редактировалось __i; 07.07.2006 в 14:15. |
|
|||||
Регистрация: Jan 2004
Адрес: На чердаке.
Сообщений: 1,112
|
Если хранить в одномерном - то придется для каждого гекса давать ссылки на соседей.
ИМХО проще обсчитывать 2d массив. Как говорилось ранее. А каждую "закрашенную" грань добавлять в отдельный массив с ссылками на общие гексы. Незакрашенные же просто не учитывать.
__________________
...Тебе страшно? Мне - нет. |
|
|||||
Цитата:
Гексы в моем случае выступают только как хранители граней и раздаватели их свойств, они незнаю кто их соседи, и не должны, им незачем, они не "материальны" %), Ну и еще я незнаю какой у тебя должен быть конечный результат, поэтому я незнаю как удобнее реализовать хранение (гексы или лучше вообще грани %) ), это не принципиально важно. Последний раз редактировалось __i; 07.07.2006 в 14:31. |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Цитата:
|
|
|||||
loading 50%
|
Гексогональная сетка есть результат соединения точек пересечения окружностей, то бишь нахождения корней уравнения вида ....
Берем координаты клика, выбираем окружность (или пару) внутри которой произошел клик, или определяем положение клика относительно центра окружности - это будет область значений. Решаем систему уравнений, получаем координаты ребра. Строим отрезок и красим в синий цвет. Отдельно по аналогичному алгоритму (с смещением координат на диаметр) просчитываем положение соседей, кладем их на слой ниже и красим в зеленый цвет. |
|
|||||
Регистрация: Jan 2004
Адрес: На чердаке.
Сообщений: 1,112
|
Ладно я нетрезвый... но вы то чего курили?
(сорри за оффтоп)
__________________
...Тебе страшно? Мне - нет. |
|
|||||
[+1 10.07.06]
Регистрация: Jan 2003
Сообщений: 365
|
В аттаче маленькая шутка на тему подобных ячеек. Не совсем то, что нужно автору поста, но доделать не сложно. Инструкция - нужно нажимать на линии.
ЗЫ: Почему нельзя сразу приаттачить SWF файл? Не удобно же постоянно паковать. Для ограничения размера можно ведь лимиты выставлять... |
Часовой пояс GMT +4, время: 13:32. |
|
« Предыдущая тема | Следующая тема » |
|
|