PDA

Просмотр полной версии : Рисование ориентированного мультиграфа


Deimos747
18.06.2012, 23:37
Здравствуйте! Кто-нибудь сталкивался с рисованием графов? Если есть опыт, подскажите пожалуйста.
А то я точки расставил, стрелки тоже, а как выяснилось, что дуг может быть не одна, а две, так ничего путного и не получается, каша какая-то:(

Simplifier
19.06.2012, 01:20
Эм.. А почему получается каша?

Deimos747
19.06.2012, 01:43
Потому что не получается правильно расставить точки для кривых Безье и выбрать угол направляющих стрелок.

Wolsh
19.06.2012, 02:54
О какой "правильности" может идти речь там, где информация просто отсутствует?

Добавлено через 12 минут
И откуда данные, что через две точки можно провести только две дуги?))) Луковицу разрежьте. Это только малая часть бесконечности.
Сформулируйте задачу по-честному. Типа "хочу чтобы гладко везде".
Потому что математически такая формулировка бессмысленна, а график априори ложный во всех точках, кроме заданных ключевых.

Simplifier
19.06.2012, 03:21
Если как на википедии чертежи надо сделать, то по идее, все должно нормально получиться, если просто выгибать дуги по одну сторону от направления ориентирования. Например, по левую:
var length:Number = Math.sqrt((startPnt.x - endPnt.x) * (startPnt.x - endPnt.x) + (startPnt.y - endPnt.y) * (startPnt.y - endPnt.y));
graphics.curveTo((startPnt.x + endPnt.x) / 2 + (endPnt.y - startPnt.y) / length * n, (startPnt.y + endPnt.y) / 2 - (endPnt.x - startPnt.x) / length * n, endPnt.x, endPnt.y);