Просмотр полной версии : Создание графика
Задача такова:
Имеется осциллограф на экране которого из начала координат
рисуется синусоида например с периодом 2Т.
Подскажите пожалуйста как нарисовать график синусоиды
Вот нашел на форуме такой код
var ampX=25;
var ampY=25;
var x=50;
var y=50;
_root.lineStyle(1,0x000000,100);
_root.moveTo(x,y);
for(i=1;i<10;i++){
if(i%2!=0){
_root.curveTo(x*i+ampX,y-ampY,x*i+2*ampX,y);
}
else{
_root.curveTo(x*i+ampX,y+ampY,x*i+2*ampX,y);
}
}
Помогите слелать для него прорисовку (т.е. его медленное рисование на экране)
И как можно сделать его не таким пологим а немного по круче (холмы были бы немного поближе
и повыше)
K.A.T.A.F.A.L.K.E.R
27.03.2006, 00:48
гадом буду не синусоида это!!! Ох не синусоида... Нечто похожее, но не оно... К тому же curveTo для плавной прорисовки тебе не прокатит - рисуй через lineTo с небольшим шагом...
Можно конечно изврититься и при помощи BitmapDat'ы замутить попиксельную прорисовку...
Задача такова:
Имеется осциллограф на экране которого из начала координат
рисуется синусоида например с периодом 2Т.
Подскажите пожалуйста как нарисовать график синусоиды
график синусоиды (как это ни удивительно) -
x = Math.sin(y)
вот тебе и все координаты.
блин фигня какая выскакивает с ошибкой. :o
Помогите плиз написать прорисовку для синусоиды :o
A - амплитуда.
t - время (можно задавать просто числом, можно изменять в сетинтервал или он ентерфрейм)
k - коэфициент который изменяет длинну волны.
y - координата y зависит от времени меняеться в диапазоне [-A..A]
x - тоже зависит от времени
this.lineStyle(1);
k=1; //1 период, 2 - 2 периода .....
A=100;
for (t=0; t<360; t++){ //360 - один период
x = t;
y = A*Math.sin(k*x*Math.PI/180);
this.lineTo(x,y);
}
ЗЫ, и вообще ребятки когда будем думать чемто кроме того что ниже пояса ? геометрия 9 класс если не 7 млин.
Samodelkin
27.03.2006, 15:25
Используй setInterval
в какой из строк имено.
а то у меня немного проблемно с методами AS
Люди, будьте добры подскажите как реализовать прорисовку.
Люди, будьте добры подскажите как реализовать прорисовку.
Так написали же всё или тебе нужна анимация прорисовки ?!
Если да то вот как то так
_root.createEmptyMovieClip("mc",1);
mc._y = 200;
mc.lineStyle(1);
k = 10;
//1 период, 2 - 2 периода .....
A = 50;
count = 0;
F_draw = function () {
//360 - один период
x = count;
y = A*Math.sin(k*x*Math.PI/180);
mc.lineTo(x, y);
count++;
};
setInterval(F_draw, 10);
у меня возникли вопросы по коду:
1) _root.createEmptyMovieClip("mc",1) что это за функция
и в какой момент она начинает выполняться (как onEnterFrame или нет???)
и что у нее за параметры ("mc",1)
2) где вызывается объявленная и описанная функция F_draw
Уууууууууууу читаем форум милионы раз обсуждалось, ну а createEmptyMovieClip("mc",1) это ваще ....
У меня тут такой вопрос, а существует ли универсальный алгоритм построения графика (на флеше естесвенно)?
Или просто как построить график по точкам?
не ну спервым я уже разобрался
а со вторым - где вызов то. Никак это - setInterval(F_draw, 50);
а можно мувик (жирная точка) заставить прорисовать
синусоиду???
Я тебя понять немогу, она и так прорисовывается!!!!!!!!
не ну спервым я уже разобрался
а со вторым - где вызов то. Никак это - setInterval(F_draw, 50);
а можно мувик (жирная точка) заставить прорисовать
синусоиду???
Интересно для кого хелп на русский переводили ?!
:yahoo:
_root.createEmptyMovieClip("mc", 1);
mc._y = 200;
k = 10;
A = 0;
count = 0;
F_draw = function () {
if (count<500) {
mc.lineStyle(count/20, random(0xFFFFFF), 100, false, "none", "round", "miter", 1);
x = count;
y = A*Math.sin(k*x*Math.PI/180);
mc.lineTo(x, y);
count++;
A += 0.2;
updateAfterEvent();
} else {
clearInterval(_root.interval);
}
};
interval = setInterval(F_draw, 20);
извиняюсь за вопрос: Где можно скачать этот русский хелп :confused:
Может всётаки раскроем глаза и посмотрим ... в каждом рахделе об этом написано ...
KUZEN ты супер терпелив %)))
KUZEN ты супер терпелив %)))
Это была последняя капля )))
Мда... После 10-ти часов за базой данных FoxPro я уже ничего не вижу.
Еще раз извиняюсь. :rolleyes:
ЛЮЮЮЮЮЮЮДИ помогите!! Как построить любой график функции???
типа y = x*x*x*x - 5*x*x +4;
почему такой скрипт не отрабатывает?
f = function(x:Number):Number{
y = x*x*x*x - 5*x*x +4;
return(y);
}
this.createEmptyMovieClip("graf",1);
_root.graf.lineStyle(1,0x000000);
_root.graf.moveTo(-4,f(-4));
for(x=-4;x<4;x+=0.001){
_root.graf.lineTo(x,f(x));
}
Мда... После 10-ти часов за базой данных FoxPro я уже ничего не вижу.
Еще раз извиняюсь. :rolleyes:
Тяжёлый случай )))
http://www.flasher.ru/forum/showthread.php?t=72460
ЛЮЮЮЮЮЮЮДИ помогите!! Как построить любой график функции???
типа y = x*x*x*x - 5*x*x +4;
почему такой скрипт не отрабатывает?
f = function(x:Number):Number{
y = x*x*x*x - 5*x*x +4;
return(y);
}
this.createEmptyMovieClip("graf",1);
_root.graf.lineStyle(1,0x000000);
_root.graf.moveTo(-4,f(-4));
for(x=-4;x<4;x+=0.001){
_root.graf.lineTo(x,f(x));
}
Ещё один ... тоже со зрением плохо ... где рисуешь там и появляется ... :mosking:
Можешь нормально обьяснить я не за этим на форум хожу......
Чего обьяснять, когда всё работает ... я за чем ты на форум ходишь я не знаю ...
у меня такой вопрос:
допустим у меня есть текстовое поле ввода. В это поле я ввожу какую ниб. функцию типа sin(x). Как мне сделать так чтобы флеш обработал значение текстового поля ни как текст а как выражение?
у меня такой вопрос:
допустим у меня есть текстовое поле ввода. В это поле я ввожу какую ниб. функцию типа sin(x). Как мне сделать так чтобы флеш обработал значение текстового поля ни как текст а как выражение?
Это уже нужно серьезно кодировать. Можешь заказать в разделе работа. На сто-четыреста функций вполне реально сделать.
Но еще раз повторю - это не 15 мин., поэтому в раздел работа. Тем методом, который я знаю стоимость примерно 40 зеленых.
т.е. ты хочешь сказать что тут будет идти просто сравнение? хм, неужели в Macromedia не предусмотрели? :(
Чего обьяснять, когда всё работает ... я за чем ты на форум ходишь я не знаю ...
В том-то и дело, что работает, но неправильно. :(
build_graf = function(xmin,xmax,scale,step){
this.createEmptyMovieClip("graf",2);
_root.graf.lineStyle(2,0xFF0000);
_root.graf.moveTo(scale*xmin,-scale*f(xmin));
for(x=xmin;x<xmax;x+=step){
_root.graf.lineTo(scale*x,-scale*f(x));
}
}
Вот так работает правильно, но плохо отрабатывают графики функций типа y=tan(x). Хотя sin и cos работают норм.
motor4ik
30.03.2006, 11:58
вот люди наивные...как же это так...макромедиа не предусмотрела..я в вожу в текстовое поле "пиво" а на экране не появляется картинка пива...вот сволочи не думают о людях совсем! :)
motor4ik
30.03.2006, 11:59
"Вот так работает правильно, но плохо отрабатывают графики функций типа y=tan(x). Хотя sin и cos работают норм."
есть просто такие понятия как математика или математическое моделирование, программирование итд. и флэш тут не при чем!
есть просто такие понятия как математика или математическое моделирование, программирование итд. и флэш тут не при чем!
Эх, только как это предусмотреть?
Еще вопрос, у меня есть 2 мувиклипа создоваемые скриптом, как сделать так чтобы эти два мувиклипа лежали в третем?
motor4ik
30.03.2006, 14:35
создать их в третьем
а можно их не создовать в третем, а потом преобразовать в третий?
Samodelkin
30.03.2006, 14:56
Как говорят на мембране, иди учи матчасть.
:D
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.