Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Синусоидальная кривая! Кто смогёт? (http://www.flasher.ru/forum/showthread.php?t=74981)

CrazyFlasher 03.02.2006 00:49

ещё повторяю, открой тригонометрию и посмотри там, что такое график синусойды...он идёт по оси OX изменяя период коллебания и амплитуду, но никак не угол ;)

Nox Noctis 03.02.2006 01:14

2Usnul
несомненно. :))
главное пол литра не забыть запасти, прежде чем разобраться, что происходит. кстати, просили синусоиду, а у тебя параболки. :))

2CrazyFlasher
зачем придираться к терминам? ведь автор даже показал, что должно получиться :)

Usnul 03.02.2006 01:18

2Nox Noctis
Я ж трезвенник... А про синусойду ты прав - схалявил я, в лом 4 кривых делать =Р
и кстати, в случае 90 градусов будет синусойда.
кхм... да... тссс... никто ничего не заметил :D

Nox Noctis 03.02.2006 02:18

Цитата:

Сообщение от Usnul
и кстати, в случае 90 градусов будет синусойда

каким образом из двух парабол получается синусоида? :) что курили? :)

Usnul 03.02.2006 02:30

Цитата:

Сообщение от Nox Noctis
каким образом из двух парабол получается синусоида? :) что курили? :)

Дурак ты, Нокс, и коза твоя дура. =Р

veterok4 03.02.2006 09:08

Уже не плохо!
 
Вложений: 1
Тэксь...филателисты - не разбредаемся...
Господа, вы немного упростили задачу!
Небходимо, чтоб "синусоида" повторяла кривую безье (а не окружность)...
это будет потруднее! Т.е., где бы была задействована анкерная точка, а не центр окружности. См. аттач.

silin 03.02.2006 11:45

это было бы серьезно потруднее, если б Ив не сделал свой Path (тебе же Нокс указал..)
Код:

this.createEmptyMovieClip("curve", 0);
var plotter=curve.createEmptyMovieClip("plotter", 0);

var path = new Path(50, 50, 150, 50, 200, 200);//© Ivan Dembicki, http://www.dembicki.org
/////////кривая/////////////////////
var p=path.getPoint(0);
moveTo(p._x,p._y);
lineStyle(0);
for(var i=0;i<path.path_length;i++){
        p=path.getPoint(i);
        lineTo(p._x,p._y);
};
/////////синусода по кривой/////////////////////////
p=path.getPoint(0);
moveTo(p._x,p._y);
lineStyle(1,0xFF0000);
curve._rotation=p._rotation;
plotter._y=10;//амплитуда
var s=0,k=0.1;
for(var i=0;i<path.path_length;i++){
        p=path.getPoint(i);
        plotter._y+=s-=plotter._y*k;
        curve._rotation=p._rotation;
        curve._x=p._x;
        curve._y=p._y;
        var gp = {x:plotter._x, y:plotter._y};
        curve.localToGlobal(gp);
        lineTo(gp.x,gp.y);
};


Nox Noctis 03.02.2006 12:08

2silin
о, спасибо, а то я уже начала сам писать :)

2veterok4
скачай класс, и добавь в код Силина первой строчкой
import org.dembicki.Path;

здесь нет смысла самостоятельно всё расчитывать. это сложно. при помощи класса Path ты можешь получить координаты точек на кривой безье на равных расстояниях, что при самостоятельных расчетах является БОЛЬШИМ математическим гемором, ибо имеет место приближенное вычисление интегралов.

veterok4 03.02.2006 12:19

**Ошибка** Сцена=Сцена 1, слой=Слой 1, кадр=1:Строка 5: The class 'org.dembicki.Path' could not be loaded.
var path = new Path(50, 50, 150, 50, 200, 200);//© Ivan Dembicki, http://www.dembicki.org


Чё то ругается отладчик....:) Хотел как есть запустить - глянуть - что за чудо патч?

Nox Noctis 03.02.2006 12:29

Цитата:

Сообщение от Nox Noctis
2veterok4
скачай класс, и добавь в код Силина первой строчкой
import org.dembicki.Path;

...и кроме того, что класс нужно скачать, его еще нужно положить в папку org/dembicki/ рядом с твоим тестовым файлом.


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

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