Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отрисовки математических блоков, графический интерфейс 
:(
    Опции темы
welt
Дата 11.6.2007, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 21.5.2005
Где: UnderGround

Репутация: нет
Всего: нет



У меня есть, допустим, два (хотя их может быть больше) элемента- прямоугоьника, у каждого из них есть какое-то число контактов (окружностей)... мне нужно сделать так, чтобы щелкнув на один контакт 1-го прямоугольника и на другой контакт второго, они соединились линией...
но может получиться ситуация, когда линия пересечет прямоугольник..
можете подсказать алгоритм? (кажется метод ветвей и границ).
Это что-то наподобие соединения блоков в программе Vissim или HiAsm..
Кое что набросал в делфи. файл прикрепил.

P.S. в моей программе кнопка "Q" - включение режима рисования блоков. Для рисования надо на форме "растянуть прямоугольник" наподобие того как в винде выделяем несколько файлов.
режим "W"- режим выбора контакта. режим рисования отключен. Пока что можно выбрать контакт только у последнего нарисованного блока. 

Это сообщение отредактировал(а) welt - 12.6.2007, 14:59

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  proekt.rar 2,91 Kb
PM MAIL   Вверх
Leos239
Дата 12.6.2007, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 26.11.2006

Репутация: нет
Всего: нет



т.е. у прямоугольника есть  ограниченный набор окружностей?

Может тогда сделать просто: вот имеем 2 прямоугольника, у каждого набор "особых точек" (окружностей). Тогда соединяем ближайшие окружности первого и второго прямоугольника (т.е. перебираем все возможные советания n * (n - 1) / 2).
Тогда вроде налажения линии на прямоугльник не будет. smile 
PM MAIL   Вверх
welt
Дата 12.6.2007, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 21.5.2005
Где: UnderGround

Репутация: нет
Всего: нет



Leos239, 
набор особых точек - это конечно.
но в том-то и дело, что надо самому указать(мышкой), какие два контакта подлежат соединению!

Это сообщение отредактировал(а) welt - 12.6.2007, 18:42
PM MAIL   Вверх
Bitter
Дата 15.6.2007, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 6
Всего: 27



Программу не смотрел, но если блоки рисуешь на имаге, то могу предложить создать второй невидимый имаг, по типу Бэк-буфера. На нём рисуешь только контакты, но только цветом соответствующем номеру блока+номер контакта.

Например блок №1 с двумя контактами рисуется на основном имаге, а на втором рисуются его контакты с цветом Color1=10+1 и Color2=10+2.

блок №2 с тремя контактами рисуется на основном имаге, а на втором рисуются его контакты с цветом Color1=20+1, Color2=20+2 и Color2=20+3.

и т.д.

Тогда клацая мышкой, проверяешь цвет пикселя второго имага и получаешь номер элемента и номер контакта:

Номер := Цвет_пикселя div 10
Номер_контакта := Цвет_пикселя - Номер

Добавлено через 2 минуты и 54 секунды
А соединение двух контактов можно сделать так: выстраивать все элементы по сетке, соответственно вести линии тоже по сетке. А маршрут этой линии вычисляется обычным волновым алгоритмом. Тогда никаких пересечений не будет.
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0429 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.