Форум 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=119870)

Black_Hawk 04.01.2009 17:02

Программное рисование графиков
 
Хочу сделать рисовалку графиков во flash:)

Вот, собственно, мои наработки (добавьте этот код в 1й фрейм):
Код AS1/AS2:

_root.createEmptyMovieClip("omfg", 1);
for (px=-240; px<310; px++) {
        py = (2*Math.sin(px)+2*Math.cos(px));
        with (_root.omfg) {
                lineStyle(1, 0xff0000, 100);
                lineTo(px*10+240, -py*10+170);
        }
}

Тут рисуется график y= 2sin(x)+2cos(x)
Вроде все работает, вот только график получается какой-то угловатый и неровный.

А как сделать чтобы график получался плавный и красивый? :)

amexdesign 04.01.2009 18:44

для отображения дуг седует использовать ещё и
Код AS1/AS2:

curveTo


Black_Hawk 04.01.2009 19:16

А если графиком будет являться прямая... :)
Думаю нужно какое-то более универсальное решение.

хм...а можно как-нибудь программно сделать точку размером в 1 пиксель во flash'е?
тогда бы можно было представить график в виде множества точек :)

DarkLight 04.01.2009 20:16

BitmapData.setPixel/BitmapData.setPixel32

Black_Hawk 05.01.2009 11:38

Эээ, а как это использовать? :)

DarkLight 05.01.2009 12:38

Делаем BitmapData размером с поле графика и расставляем точки с малым интервалом

Black_Hawk 05.01.2009 14:26

Да, теперь все понятно, спасибо!

Mnilionic 05.01.2009 16:17

а какая разница? как это на "угловатость" влияет?
Чем больше шаг следующего X тем больше "угловатость", но быстрее работает
и на оборот чем меньше шаг - темь меньше угловатость, но медленнее работает.

ну и плюс масштаб всех этих рисований.

Код:

_root.createEmptyMovieClip("omfg", 1);
for (px=-240; px<310; px += .2) {
        py = (2*Math.sin(px)+2*Math.cos(px));
        with (_root.omfg) {
                lineStyle(1, 0xff0000, 100);
                lineTo(px*10+240, -py*10+170);
        }
}


Black_Hawk 05.01.2009 17:03

Вы правы, никак :)
линиями даже красивей получается, чем точками... понял это только теперь :)

Если сделать очень маленький шаг, то получается идеальный график.

Psycho Tiger 06.01.2009 21:14

Ну, в конечном итоге все равно придется график аппроксимировать. Никогда при постройке графика не использовал curveTo.


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

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