![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: May 2003
Сообщений: 144
|
народ, помогите с одной интересной проблемой.
для начала нужно расставить точки (вручную) на определенной области. задача: провести плавную кривую, так, что бы точки стали экстремальными. получается только вот так: http://www.mechitov.com/robi/graph.swf линия удаляется от точек, когда вертикальный разброс между двумя ближними точками велик. вот код, который рисует линию: this.onEnterFrame = function() { mc.lineStyle(1, 0x5BA050, 100); mc.moveTo(this.c0_mc._x, this.c0_mc._y); var arr = this._parent.path_array=[]; arr.push((this.c0_mc._x+this.c1_mc._x)/2); arr.push((this.c0_mc._y+this.c1_mc._y)/2); for (var i = 1; i<(punto-2); i += 1) { var mc1 = this["c"+i+"_mc"], mc2 = this["c"+(i+1)+"_mc"]; var pt_x = (mc2._x+mc1._x)/2, pt_y = (mc2._y+mc1._y)/2; mc.curveTo(mc1._x, mc1._y, pt_x, pt_y); arr.push(mc1._x), arr.push(mc1._y), arr.push(pt_x), arr.push(pt_y); } mc.lineTo(mc2._x, mc2._y); }; где: mc - материнский клип, с_[n]_mc - клипы точек, punto - кол. точек. можно ли как-нибудь скорректировать кривую, что бы она проходила всегда вдоль точек, причем если какие-либо две точки стоят на одной горизонтали, что-бы это кривая была прямой. |
|
|||||
|
Рисовать нужно кубическими или квадратичными кривыми Безье. Классы которые помогут решить данную проблему видел например на сайте Silin'a:
http://www.silin.fatal.ru/AS2/index.html |
|
|||||
|
Регистрация: May 2003
Сообщений: 144
|
спасибо снег, на первый взгляд силин то, что нужно.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 23:32. |
|
|
« Предыдущая тема | Следующая тема » |
|
|