Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 10.08.2014
Сообщений: 3
1

Как отрисовывать линию, соединяющую две фигуры, так, чтобы она не пересекала эти фигуры и другие линии

10.08.2014, 18:25. Показов 1567. Ответов 11
Метки нет (Все метки)

Подскажите, пожалуйста, как отрисовывать линию, соединяющую две фигуры, так, чтобы она не пересекала эти фигуры и другие соединительные линии. То есть шла в обход.
Например, есть 3 квадрата. Нужно, допустим, чтобы линия 1 соединяла середину левой стороны 1-го квадрата с серединой правой стороны 2-го квадрата в обход самих квадратов. Т.е. уходила вниз под квадраты, а не через них напрямую. А линия 2 также соединяла 1-й квадрат с 3-м, и при этом не пересекала линию 1.
Вот нарисовал пример, чтобы нагляднее было.
0
Миниатюры
Как отрисовывать линию, соединяющую две фигуры, так, чтобы она не пересекала эти фигуры и другие линии  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.08.2014, 18:25
Ответы с готовыми решениями:

Как сделать так, чтобы линии не перекрывали фигуры?
Делаю редактор графа, и столкнулся с одной проблемой - при рисовании ребер графа линии перекрывают...

Вычислить длину линии вертикального разреза фигуры, площади фигуры слева и справа от линии разреза
Составить алгоритм и написать код программы, вычисляющей длину линии вертикального разреза фигуры ...

Как правильно отрисовывать фигуры в событии таймера
Во общем решил сделать отрисовку прямоугольника по таймеру ,ну так что бы по истечению 5 секунд...

Нарисовать линию, соединяющую две точки
Добрый вечер Уважаемые пользователи CyberForum! Написал программу, которая считает кратчайшие...

__________________
11
Модератор
63336 / 47047 / 32428
Регистрация: 18.05.2008
Сообщений: 114,043
10.08.2014, 18:40 2
Определи координаты характерных точек каждой линии и нарисуй их методом Canvas.Polyline(p)
где p:array of TPoint;
1
0 / 0 / 0
Регистрация: 10.08.2014
Сообщений: 3
10.08.2014, 19:10  [ТС] 3
И эти кординаты точек каждой линии сравнивать с другими линиями, чтобы не пересекались? А если вот такой граф получается? (Линия 5). То есть ей лучше проходить сверху квадрата.
То есть, у меня задача состоит в том, что я могу добавить новый квадрат в любое место канвы и подать команду соединить его с любым другим квадратом. Вот как строить такую линию, как высчитывать наилучший маршрут?
Извините, что так сумбурно.
0
Миниатюры
Как отрисовывать линию, соединяющую две фигуры, так, чтобы она не пересекала эти фигуры и другие линии  
Модератор
63336 / 47047 / 32428
Регистрация: 18.05.2008
Сообщений: 114,043
10.08.2014, 19:23 4
В любом случае координаты характерных точек задавать Вам, Делфи это делать не умеет.
1
0 / 0 / 0
Регистрация: 10.08.2014
Сообщений: 3
10.08.2014, 19:30  [ТС] 5
Спасибо. Честно говоря, надеялся, что есть уже отработанные алгоритмы... Будем работать
0
Модератор
63336 / 47047 / 32428
Регистрация: 18.05.2008
Сообщений: 114,043
10.08.2014, 19:35 6
Поищите что-нибудь по отрисовке графов.
1
4931 / 3840 / 1277
Регистрация: 14.04.2014
Сообщений: 17,720
Записей в блоге: 18
10.08.2014, 23:12 7
если задать некоторый шаг для того, чтобы проводить линии "красиво", то алгоритм сведется к поиску выхода из лабиринта.
после каждой новой линии следующая учитывает ее как стену...
1
northener
11.08.2014, 03:04
  #8

Не по теме:

На момент моей последней работы с PCAD, ORCAD и иже с ними, алгоритмы разводки были весьма секретными.
Правда прошло уже 18 лет. :)

0
723 / 475 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
11.08.2014, 03:13 9
Цитата Сообщение от northener Посмотреть сообщение
Не по теме:
На момент моей последней работы с PCAD, ORCAD и иже с ними, алгоритмы разводки были весьма секретными.
Правда прошло уже 18 лет.
Раскроеш секрет?
0
4076 / 1791 / 210
Регистрация: 06.10.2010
Сообщений: 4,001
11.08.2014, 10:21 10
Алгоритм Ли

Пример нахождения ортогонального пути (твой случай)
Как отрисовывать линию, соединяющую две фигуры, так, чтобы она не пересекала эти фигуры и другие линии
0
4076 / 1791 / 210
Регистрация: 06.10.2010
Сообщений: 4,001
11.08.2014, 10:28 11
http://window.edu.ru/resource/... tver45.pdf - смотри описание метода путевых координат.
0
723 / 475 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
11.08.2014, 11:00 12
Есть еще волнавой алгоритм

Добавлено через 1 минуту
Алгоритм Ли им и оказался

Добавлено через 54 секунды
Есть исходники, могу поделиться
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.08.2014, 11:00

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Нарисовать линию соединяющую две кнопки в таблице
Я не программист. Но мне это надо. Имею таблицу из трёх колонок. В первой элементы (button) и в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.