Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Чертеж графика по запланированным координатам. (http://www.flasher.ru/forum/showthread.php?t=173838)

Profdesigner 12.01.2012 16:15

Чертеж графика по запланированным координатам.
 
Здравствуйте уважаемые!
Изучаю AS3 и возникла необходимость отображать вырисовку графика по заранее заданным параметрам.
Хочу визуально отрисовывать график, как картинка на главной странице сайта www.аксиома-полиграф.рф.
Т.е я буду делать небольшие "палочки", которые будут как бы рисовать график по нужным координатам, и все это в итоге будет циклично показываться. Неохота делать "по старинке" timline'ом, хочеться по-науке так сказать AS'ом. Понимаю что программить за меня ни кто не будет, просьба подсказать как заставить график вырисовываться холсте по нужным мне координматам и как заставлять "палочки" двигаться по графику, как буд-то они рисуют его(график).

HardCoder 12.01.2012 16:20

в качестве "самописца" можно использовать любую картинку. И при рисовании графика изменять ее координаты так чтобы один ее конец всегда был на текущей (отрисовываемой) координате. А сам график рисуйте с помощью http://help.adobe.com/ru_RU/FlashPla.../Graphics.html

PainKiller 12.01.2012 16:48

делал когда то нечто подобное, держите код:
Код AS3:

import flash.events.Event;
 
var os_x: Number = 30;
var os_y: Number = 150;
 
var rand_x: Number;
var rand_y: Number;
 
graphics.lineStyle (3, 0x00BB00);
graphics.moveTo(os_x, os_y);
 
addEventListener (Event.ENTER_FRAME, drawGraf);
 
function drawGraf (event:Event): void {
        rand_x = os_x + Math.random();
        rand_y = os_y;
 
        rand_x = os_x + Math.random()*3;
        rand_y = 50 + Math.tan(os_y + Math.random()*3);
 
        /*if (rand_x >= 100) {
                rand_y = os_y + Math.random();
                rand_x = os_x;
        }
        */

        graphics.lineTo(rand_x, rand_y);
        os_x = rand_x;
        os_y = rand_y;
 
}

можно вставить в кадр будет работать

Profdesigner 12.01.2012 16:51

Спасибо за ссылку на справку. Я и планировал прописывать класс Graphics и рисовать. Получается придется задавать как-то расположение "самописцев" в тех же координатах что и график при рисовании.

Добавлено через 1 минуту
Цитата:

Сообщение от Profdesigner (Сообщение 1056351)
Спасибо за ссылку на справку. Я и планировал прописывать класс Graphics и рисовать. Получается придется задавать как-то расположение "самописцев" в тех же координатах что и график при рисовании.

Спасибо! Math.random() - самое то!

Добавлено через 8 минут
Подскажите, как прописать Math.random(), что бы он ходил в определенном промежутке цифр, что бы график не вылазил за пределы? Или это тоже уже есть в данном коде?

ChuwY 12.01.2012 17:31

Код AS3:

const MIN : Number = 1.0;
const MAX : Number = 10.0;
var randomVar : Number;
randomVar = MIN + Math.random*(MAX-MIN);


Profdesigner 12.01.2012 17:38

Спасибо!

Profdesigner 16.01.2012 16:43

Уважаемые, подскажите, как сделать так, что бы этот график не уходил в конец флешки, а дошел бы до правого края и продолжая показывать чертеж оставался на месте.
Получается нужно как то палитру изменять? Слушатель ставить?

PainKiller 17.01.2012 01:41

вставьте в функцию условие (по оси Х), и когда график пересечет заданную вами точку, перестанет рисоваться дальше

Profdesigner 17.01.2012 01:47

Логическую схему я понимаю уважаемый, но реализовать пока не могу. Практика нужна и еще раз практика.

Deimos747 17.01.2012 10:08

В drawGraf дописываете
Код AS3:

if (x >= xMax) {
  removeEventListener (Event.ENTER_FRAME, drawGraf);
}


Profdesigner 17.01.2012 10:15

Дак он просто остановиться, судя по коду, т.к слушатель будет удален... А как сделать что бы график дойдя до крайней правой стороны продолжал создавать линию графика, но оставался в пределах ширины палитры?
Или я не правильно написал и все в этом коде есть?

Deimos747 17.01.2012 10:31

Я не могу вас понять до конца, вы хотите сдвигать весь график или чтобы перо продолжало двигаться по оси у, при этом не меняя координаты х?

Profdesigner 17.01.2012 10:43

Хочу что бы линия графика, при старте ролика, тянулась с крайней левой стороны на право, дошла до крайней правой точки и не ушла за пределы, а осталась видимой. Как только график дошел до крайней правой стороны поля, он продолжает функционировать(показывать колебания), но не уходит бесследно за пределы видимости.
Вот примерно это.

Deimos747 17.01.2012 11:13

В таком случае в методе drawGraf нужно заменить
Код AS3:

graphics.lineTo(rand_x, rand_y);

на
Код AS3:

if (x < xMax) {
graphics.lineTo(rand_x, rand_y);
}

т.е. рисование останавливается, а перо двигается. Или я опять неправильно понял?

Profdesigner 17.01.2012 11:18

Получается, когда X становится больше значения максимума края поля, то линия не движется вправо, а останавливается, но продолжает показывать данные. Нет редактора, дома проверю. Спасибо.


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

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