Re: Точки для соединения объектов
От: Stanislav V. Zudin Россия  
Дата: 13.06.05 05:38
Оценка:
Здравствуйте, Grog13, Вы писали:

G>Мне нужно красиво рисовать соединения между ножками различных микросхем.

G>Т.е. к примеру как тут схематично нарисовано:

G>


G>Т.е. смысл такой — я нажимаю мышкой на одной ножке и веду соединение к другой ножке — и должен получить примерно такой результат.

G>Какие данные мне даны: — координаты и размеры соединяемых чипов и их ножек.
G>А дальше программулька должна каким-то образом вычислить оставшиеся промежуточные точки.

G>Как такие вещи делаются?


Ну, в редакторе электрических принципиальных схем достаточно канальной трассировки. Получается достаточно шустренько.
А в редакторе топологии печатной платы уже сложнее. Если хочется сделать интерактивный разводчик, то нужно учитывать конструктивно-технологические ограничения. Там и модель монтажного пространства нужна посложнее и работы там не на один год.

Сходи в библиотеку, почитай про поиск пути в лабиринте, алгоритм Ли, алгоритм А*, лучевой алгоритм, канальную трассировку.
Посмотри на Protel (www.altium.com), Pulsonix (www.pulsonix.com), TopoR (www.freestyleteam.com/ru). Демки доступны.

Насчет твоего вопроса в .NET_GUI ("Реакция своего контрола на мышку")...
Не надо никаких UserControl'ов.
Пробежал по массиву, по всем объектам, проверил попадание.
Чем проще, тем лучше. Работало быстро даже на 286-х в стародавние времена.
Начинаешь проверять попадание сперва в самые мелкие объекты, затем в те, что покрупнее. В твоем случае (я не телепат, могу только догадываться), наверное стоит начинать с проводников, затем проверять контакты, затем компоненты.

Да, проводники это не прямоугольники, а отрезки линий!!! Вот и используй соответствующие алгоритмы. "Расстояние от точки до отрезка(прямой)" разжевывался здесь многократно.
... << RSDN@Home 1.1.4 @@subversion >>
_____________________
С уважением,
Stanislav V. Zudin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.