Здравствуйте, 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 >>