}

II Запоминание параметров следующей точки myAnchor = myPointB.anchor; myX2 = myAnchor[0] ; myY2 = myAnchor[1];

II myPointC - предыдущая точка на прямой.

II Если myPathPoint - начальная точка прямой, то,

II соответственно, myPointC - последняя точка.

if (myPathPointCounter == 0){

myPointC = myPath.pathPoints[myPath.pathPoints.length - 1];

}

else{

myPointC = myPath.pathPoints[(myPathPointCounter - 1);

}

II Запоминание параметров предыдущей точки myAnchor = myPointC.anchor; myX3 = myAnchor[0]; myY3 = myAnchor[1];

II Получение новых координат

myPoints = myAddPoints(myXl, myYl, myX2, myY2, myX3, myY3, myOffset);

myNewXl = myPoints[0]; myNewYl = myPoints[1]; myNewX2 = myPoints[2] ; myNewY2 = myPoints[3];

II Расчет положения новых точек в зависимости от выбранного II пользователем типа кривой, switch (myCornerType){ case 0:

II Скругление углов

II Сначала - координаты

myPoint = [[myNewX2, myNewY2], [myNewX2, myNewY2],

[myXl, myYl]]; myPointArray.push(myPoint) ;

myPoint = [[myNewXl, myNewYl], [myNewXl, myNewYl], [myNewXl, myNewYl]]; myPointArray.push(myPoint); break; case 1:

II Втянутые утлы

myPoint = [[myNewX2, myNewY2], [myNewX2, myNewY2],

[(myNewX2 + myNewXl - myXl), (myNewY2 + myNewYl - myYl) myPointArray.push(myPoint);

myPoint = [[myNewXl, myNewYl], [myNewXl, myNewYl], [myNewXl, myNewYl]];

myPointArray.push(myPoint); break; case 2:

// Срезанные углы

myPoint = [ [myNewX2, myNewY2], [myNewX2, myNewY2], [myNewX2, myNewY2]]; myPointArray.push(myPoint);

myPoint = [[myNewXl, myNewYl], [myNewXl, myNewYl], [myNewXl, myNewYl]]; myPointArray.push(myPoint); break; case 3:

II Обрезанные углы

myPoint = [[myNewX2, myNewY2], [myNewX2, myNewY2],

[myNewX2, myNewY2]]; myPointArray.push(myPoint); myPoint = [ [ (myNewX2 + myNewXl - myXl),

(myNewY2 + myNewYl - myYl)],[(myNewX2 + myNewXl - myXl),

(myNewY2 + myNewYl - myYl) ], [ (myNewX2 + myNewXl - myXl),

(myNewY2 + myNewYl - myYl)]];

myPointArray.push(myPoint);

myPoint = [[myNewXl, myNewYl], [myNewXl, myNewYl],

[myNewXl, myNewYl]]; myPointArray.push(myPoint) ; break; case 4:

II Оригинальные углы.

II Каждая угловая точка ставится на расстоянии 1/3 // величины смещения, т. е. первая на 1/3,

// вторая 2/3 для каждого угла, var myOneThird = 0.33; var myTwoThirds = 0.67

var myPointZX = myNewX2 + myNewXl - myXl; var myPointZY = myNewY2 .+ myNewYl - myYl; var myTemplX = (myXl - myNewX2) * myTwoThirds;

var myTemplY = (myYl - myNewY2) * myTwoThirds;

var myTemp2X = (myXl - myNewXl) * myTwoThirds;


⇐ вернуться назад | | далее ⇒