Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 13.09.2005, 02:10
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 1  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
По умолчанию Формула кривых Безье!

это не вопрос - просто делюсь :~)

//R(t) = P0*(1-t)^3 + P1 * t * (1-t)^2 + P2 * t^2 * (1-t) + P3 * t^3 ,
//где 0<=t<=1
//P0,P2 - опорные точки
//P1,P3 - управляющие точки

Код:
function dot(path, x, y, w, h, c){
	depth=path.getNextHighestDepth();
	var mc=path.createEmptyMovieClip("dot"+depth, depth);
	mc._x=x;	mc._y=y;
	with(mc){	
		beginFill(c, 100);
		moveTo(0, 0);
		lineTo(w, 0);lineTo(w, h);lineTo(0, h);lineTo(0, 0);
		endFill();		
	}return(mc);
}

a=dot(_root,10,10,5,5,0xFF0000);
a1=dot(_root,10,110,5,5,0xFF0000);
b=dot(_root,200,200,5,5,0xFF0000);
b1=dot(_root,200,90,5,5,0xFF0000);

a.onPress=a1.onPress=b.onPress=b1.onPress=function() {this.startDrag();}
a.onRelease=a.onReleaseOutside=function() {	this.stopDrag();}
a1.onRelease=a1.onReleaseOutside=function() {	this.stopDrag();}
b.onRelease=b.onReleaseOutside=function() {	this.stopDrag();}
b1.onRelease=b1.onReleaseOutside=function() {	this.stopDrag();}


d=_root.createEmptyMovieClip("d", 11);
d.onEnterFrame=function() {
	x0=a._x;y0=a._y;
	xc0=a1._x;yc0=a1._y;
	x1=b._x;y1=b._y;
	xc1=b1._x;yc1=b1._y;
	_root.Redraw();
}

function Redraw () {// Hарисовать кривую Безье
s=_root.createEmptyMovieClip("s", 10);
//s._x=s._y=10;

for (t=0; t<1; t+=0.01) {
	q1 = t*t*t*-1 + t*t*3 + t*(-3) + 1;
	q2 = t*t*t*3 + t*t*(-6) + t*3;
	q3 = t*t*t*(-3) + t*t*3;
	q4 = t*t*t;

	// Здесь подставляются координаты опорных точек
	qx = q1*x0 + q2*xc0 + q3*xc1 + q4*x1;  
	qy = q1*y0 + q2*yc0 + q3*yc1 + q4*y1;  
	
	dot(s,qx,qy,1,1,0x000000);
}
}

Создать новую тему   Часовой пояс GMT +4, время: 23:16.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:16.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.