|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Дек 15, 2003 00:41:32 Для большого количества объектов со сложной формой, наложениями и прочими стрелочками можно вести параллельно с экранным буфером, буфер с идентификаторами объектов в этой точке. Юзер может кликнуть только то, что видит на экране. Завести буфер того же размера, что и экран, и при отрисовке на экран какой-нибудь формы разными цветами и оттенками, со всякими надписями и прочим, отрисовывать ту же форму в буфере идентификаторов одним цветом, соответствующим идентификатору объекта. Так же со всякими стрелочками. А потом просто смотреть содержимое буфера идентификаторов под курсором. Минус в том, что придётся вдвое больше рисовать, хотя по сути, контуры просчитываются однократно, и это можно реализовать достаточно эффективно. К тому же, можно разрешение этого буфера сделать, допустим, вдвое меньшим, а при всяких перетаскиваниях обновлять его только в конечных точках. Из плюсов - возможность просто варьировать активные зоны различных объектов. К примеру, линии на экране могут быть тоненькими и симпатичными, а в том буфере - толстыми, чтобы по ним было прощё целиться мышкой, и так далее. В общем, при большом количестве и высокой сложности объектов - самое то. А когда объектов мало, проще просмотреть их все... |
|
|
Дата: Дек 15, 2003 04:09:21 bsl_zcs Из плюсов - возможность просто варьировать активные зоны различных объектов. Проще сделать у объекта метод который будет возвращать растояние от него до заданной точки, чем рисовать картинку с разной толщиной линий. К тому же при данном способе появляется возможность выбирать перекрывающиеся объекты. Что может быть полезно если объекты слишком близко друг от друга или обладают прозрачностью. Делается примерно так: При первом клике составляем список объектов находящихся от курсора не далее N пикселей. Упорядочиваем по расстоянию до курсора. А при последующих кликах, если координаты мыши не изменились или изменились незначительно то переходим к следующему объекту в списке. Иначе строим новый список. |
|
|
Дата: Дек 15, 2003 05:51:10 Ага понял, спасибо всем но кудыто вы в сложности перешли. Как я уже писал мне подошла бы основа примерно такая же как в редакторе диалогов реализованная в RadAsm, а уж реализовать такие детали как блоки содержащие свои вложенные блоки и пр. это не так сложно. Повторюсь именно интерфейс с пользователем для меня камень преткновения, не пишу я их почти. А тут целая куча всего требуется, взял мышкой примитив, перетащил на форму, еще один примитив соеденил их связями и т.д. Вот именно графическое отбражение всех этих действий и формочек меня и ставит в тупик. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.074 |