Показать сообщение отдельно
Старый 17.07.2008, 22:01
Alex_beginner вне форума Посмотреть профиль Отправить личное сообщение для Alex_beginner Найти все сообщения от Alex_beginner
  № 4  
Ответить с цитированием
Alex_beginner
 
Аватар для Alex_beginner

Регистрация: May 2008
Сообщений: 476
Предлагаю мой вариант реализации:

Код:
import flash.geom.Point;
var cooY1:Number = null; //координата Y точек
var cooX1:Number = null; //координата X точек
var i:Number = 0;//индекс имени клипов-точек
var nameMC:String = '';//имя клипа-точек
var beg_X:Number = 110;//начальный X построения кривой
var end_X:Number = 210;//конечный X построения кривой
var step:Number = 5; // шаг по X
var timePeriod:Number = 80; //временной период между прорисовками точек
var intervalID:Number = null;//идентификатор таймера

function laCourbe(a:Number, b:Number, c:Number, courbeColor:Number) {
	    var container:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());
	    var beg_Point:Point = equation_of_curve(beg_X,a,b,c);
		container.moveTo(beg_Point.x,beg_Point.y);
		cooX1=beg_X+step;
		intervalID = setInterval(constrFunc,timePeriod,a,b,c,courbeColor);
}

function equation_of_curve(X:Number, a:Number, b:Number, c:Number):Point //функция изменения Y от X
{
	return new Point(X,a*Math.pow(X, 2)+b*X+c);
}


function constrFunc(a:Number, b:Number, c:Number, courbeColor:Number)
{
			cooY1 = equation_of_curve(cooX1,a,b,c).y;
			nameMC = "point"+i;
			//container.createEmptyMovieClip(nameMC,container.getNextHighestDepth());
			container.attachMovie("point",nameMC,container.getNextHighestDepth());
			container[nameMC]._x = cooX1;
			container[nameMC]._y = cooY1;
			container.lineStyle(1,courbeColor);
			container.lineTo(cooX1,cooY1);
			if (cooX1>end_X) 
			{
				clearInterval(intervalID);
				trace("Построение окончено");
			}
			i++;
			cooX1+=step;
}


laCourbe(0.05,-20,2050,0xFF0000);
Преимущества:
1. работоспособность (линии отображены цветом courbeColor);
2. отсутствует или почти отсутствует избыточность кода, т.е нет излишних вычитаний, сложений, присвоений, инкрементов.
3. структурированность кода - математическая функция задающая закон изменения Y от X вынесена в отдельную функцию.
Вложения
Тип файла: rar Построение кривой (Created_by_Alex_beginner).rar (5.1 Кб, 115 просмотров)
__________________
Случайность, господа, это знаете ли непознанная необходимость.


Последний раз редактировалось Alex_beginner; 18.07.2008 в 12:59.