LINUX.ORG.RU

Рисование ломаной линии м/у двумя объектами, как?


0

2

Доброго времени суток, наверно многие видели на различных диаграммах(UML, IDEF... ) что между объектами схемы проводится ломаная линия, т.е не просто от точки А до точки Б, а она «ломается», всегда под прямым углом, если например объекты находятся на разных высотах по оси Y. Собственно интересует, как делают эту «ломанность»? Объясните на пальцах, можно сдобрить это дело кусочками кода :)

Пример на картинке: http://solarix.ru/for_developers/api/sql/oracle-schema.gif или вот: http://www.egoroff.spb.ru/images/1/14/1.gif

★★★★★

Последнее исправление: xterro (всего исправлений: 1)

эээ. я не совсем кодер, но первые мысли такие:

1. узнать начало и конец линии
2. узнать где можно ее нарисовать («зеленая зона»)
3. соединить начало и конец прямой линией и двигатся по этому отрезку по одной координате до «зеленой зоны»? потом поворачивать.

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

и что за школоло?

mityash
()

это я вариант для трех отрезков сказал
для двух еще проще..

mityash
()
Ответ на: комментарий от xterro

ну алгоритмы то вроде не очень сложные...
поэтому и вопрос такой родился)

вообще первый вариант, если его расписать поподробнее будет тебе строить все подряд..

mityash
()

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

Естественно, при этом надо учитывать то, что после каждой опорной точки линия может либо двигаться прямо, либо свернуть на 90°.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Благодарствую, буду осмысливать )

xterro ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.