catilina
13.08.2006, 19:21
народ, помогите с одной интересной проблемой.
для начала нужно расставить точки (вручную) на определенной области.
задача: провести плавную кривую, так, что бы точки стали экстремальными.
получается только вот так:
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 - кол. точек.
можно ли как-нибудь скорректировать кривую, что бы она проходила всегда вдоль точек, причем если какие-либо две точки стоят на одной горизонтали, что-бы это кривая была прямой.
для начала нужно расставить точки (вручную) на определенной области.
задача: провести плавную кривую, так, что бы точки стали экстремальными.
получается только вот так:
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 - кол. точек.
можно ли как-нибудь скорректировать кривую, что бы она проходила всегда вдоль точек, причем если какие-либо две точки стоят на одной горизонтали, что-бы это кривая была прямой.