PDA

Просмотр полной версии : Соединение блоков линиями


Alex626
19.02.2013, 22:08
Всем доброго времени суток!

У меня есть такая задача: нужно создать несколько квадратных блоков, а затем соединить их связями в виде линий, при этом отслеживая, что с чем соединено. По идее, нужно работать с отрисовкой кривых.

Некий аналог есть вот тут: http://wiki.crymod.net/index.php/%D0%91%D0%B5%D1%81%D0%BA%D0%BE%D0%BD%D0%B5%D1%87%D0%BD%D1%8B%D0%B9_%D1%86%D0%B8%D0%BA%D0%BB,_%D1%80%D0%B0%D0%BD%D0%B4%D0%BE%D0%BC%D0%BD%D0%BE%D0%B3%D0 %BE_%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%B2%D0%B8%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_AI_%D0%BC%D0%B5%D0%B6%D0%B4%D1%83_4-%D0%BC%D1%8F_%D1%82%D0%BE%D1%87%D0%BA%D0%B0%D0%BC%D0%B8. Только мне нужно создать подобную систему не для просмотра схем, а для их конструирования. Помогите пожалуйста разобраться.

Hauts
20.02.2013, 09:21
Тогда вам в помощь методы мувиклипа moveTo, lineTo, curveTo, lineStyle и т.д.

dark256
20.02.2013, 12:30
Ну, к примеру - вот хороший пример по рисованию кривых:
http://silin.su/#AS2/fit

Заменив ТОЧКИ вашими блоками - получите требуемое.

Alex626
20.02.2013, 17:13
В последнем примере как-то не совсем понятно ровно ничего... Ни единого комментария в коде.

Что делает класс QFit?

Hauts
20.02.2013, 17:44
Думаю вам лучше спросить у автора или для начала воспользоваться методом cDraw(mc,p), передавая в него клип для рисования и массив точек (класс Point).

Что делает класс QFit?
— Дает вам возможность вызывать методы для отрисовки кривых между заданными точками.

Alex626
20.02.2013, 17:49
Ну про отрисовку это и так понятно. Но вот в действии каждой функции разбираться надо год.

edit: а вообще, классная вещь. осталось только разобраться.

Попытался углубиться в примеры Adobe, хотел сделать простую рисовалку прямых: ё моё, гемор нереальный.

Hauts
20.02.2013, 17:55
Alex626, это уж вам решать.

Alex626
25.02.2013, 02:35
Всё таки разобрался :D. Оказалось, всё гораздо проще.

Теперь есть следующий вопрос. Можно ли линиям задавать более сложные стили, например, как в Adobe Illustrator, чтобы на конце линии была стрелочка, либо линия была пунктиром?

dark256
25.02.2013, 11:27
Пунктир - в свойствах lineStyle.
Стрелочку.... хе.... Ручками. Координата конца есть, ориентация направления - у вас есть угол наклона направляющей безье.

Alex626
02.03.2013, 02:55
В общем, я нашёл то, что приблизительно мне нужно: http://sourcebinder.org/. Только вся программа будет исполняться на C++.