Главная Контакты


  На сайте

  Java, JavaScript
  Документация Perl
  Документация PHP
  Документация ASP
  Новости сайта
  Flash
  Интернет протоколы
  Apache
  Уроки программирования
  Язык программирования C
 


программное рисование во flash mx. управление кривыми. (часть ii)


ВСЕ!!! Создание окончено. Целиком код метода выглядит так:

movieClip.prototype.ellipseTo = function(){
var t = arguments[0][0] == undefined ? 1 : 0;
var CenterX = arguments[0+t][0];
var CenterY = arguments[0+t][1];
var Dir = 1;
var ARadius;
var BRadius;
var StartAngle = 0;
var EndAngle = 0;
var ARadAngle = 0;
var div = 12;
var delta = Math.PI/6;
with (Math){
if (arguments[1+t][0] == undefined){
ARadius = BRadius = arguments[1+t];
} else {
ARadius = arguments[1+t][0];
BRadius = arguments[1+t][1];
};
if (arguments.length > 2+t){
if (arguments[2+t][0] == undefined){
ARadAngle = PI*arguments[2+t]/180;
} else {
StartAngle = PI*arguments[2+t][0]/180;
EndAngle = PI*arguments[2+t][1]/180;
if (ARadius != BRadius){
if (cos(StartAngle)<0){
StartAngle = PI+atan(ARadius*tan(StartAngle)/BRadius);
} else if (cos(StartAngle)> 0){
StartAngle = atan(ARadius*tan(StartAngle)/BRadius);
};
if (cos(EndAngle)<0){
EndAngle = PI+atan(ARadius*tan(EndAngle)/BRadius);
} else if (cos(EndAngle)> 0) {
EndAngle = atan(ARadius*tan(EndAngle)/BRadius);
};
};
while (!(EndAngle > StartAngle)){
StartAngle -= 2*PI;
};
while (EndAngle-StartAngle > 2*PI){
EndAngle -= 2*PI;
};
div = ceil(6*(EndAngle-StartAngle)/PI);
delta = (EndAngle-StartAngle)/div;
if (arguments.length == 4){
ARadAngle = PI*arguments[3+t]/180;
};
};
};
var te;
var X1;
var Y1;
var X2;
var Y2;
if (t==0){
te = ARadius*cos(StartAngle);
Y1 = BRadius*sin(StartAngle);
X1 = CenterX+teX*cos(ARadAngle)-teY*sin(ARadAngle);
Y1 = CenterY+teX*sin(ARadAngle)+teY*cos(ARadAngle);
this.moveTo (X1, Y1);
} else if (Dir==-1){
te = StartAngle;
StartAngle = EndAngle;
EndAngle = te;
}
for (var i = 1; i<=div; i++){
te = ARadius*cos(StartAngle+Dir*delta*i);
Y1 = BRadius*sin(StartAngle+Dir*delta*i);
X1 = CenterX+te*cos(ARadAngle)-Y1*sin(ARadAngle);
Y1 = CenterY+te*sin(ARadAngle)+Y1*cos(ARadAngle);
te = ABRadius*cos(StartAngle+Dir*delta*(i-0.5));
Y2 = BBRadius*sin(StartAngle+Dir*delta*(i-0.5));
X2 = CenterX+te*cos(ARadAngle)-Y2*sin(ARadAngle);
Y2 = CenterY+te*sin(ARadAngle)+Y2*cos(ARadAngle);
this.curveTo (X2, Y2, X1, Y1);
};
};
}

Впрочем, рекомендую скачать исходник и посмотреть программный код целиком именно там (во избежании возможных опечаток 8-)).

Надеюсь, что данная статья была для Вас полезной.
В завершении хочу выразить благодарность Nox Noctis'у - за предпросмотр и критику.
До свидания! Удачи!

Другие статьи по теме:

- Flash для чайников
- программное рисование во flash mx. управление кривыми. (часть ii)
- использование flash, javascript и fscommand.
- неожиданные применения flash
- Flash переменные и их использование


Голосование:
Чего Вы хотели бы видеть больше на сайте?

Статей, документации
Скриптов
Программ для вебмастера
Я не знаю



Другие голосования

Обмен кнопочками:



Приглашаем Вас обменяться кнопочками! Обращайтесь к администратору.


Новые статьи:


Наши партнеры:





2006-2022 © SMTI.RU
Главная страница | Связаться с нами