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

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

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

Регистрация: Jan 2009
Сообщений: 10
По умолчанию Программное рисование графиков

Хочу сделать рисовалку графиков во 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)
Вроде все работает, вот только график получается какой-то угловатый и неровный.

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

Старый 04.01.2009, 18:44
amexdesign вне форума Посмотреть профиль Отправить личное сообщение для amexdesign Посетить домашнюю страницу amexdesign Найти все сообщения от amexdesign
  № 2  
Ответить с цитированием
amexdesign

Регистрация: Jan 2009
Адрес: Германия, Bochum
Сообщений: 169
Отправить сообщение для amexdesign с помощью Skype™
для отображения дуг седует использовать ещё и
Код AS1/AS2:
curveTo

Старый 04.01.2009, 19:16
Black_Hawk вне форума Посмотреть профиль Отправить личное сообщение для Black_Hawk Найти все сообщения от Black_Hawk
  № 3  
Ответить с цитированием
Black_Hawk

Регистрация: Jan 2009
Сообщений: 10
А если графиком будет являться прямая...
Думаю нужно какое-то более универсальное решение.

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

Старый 04.01.2009, 20:16
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 4  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
BitmapData.setPixel/BitmapData.setPixel32
__________________
4am is time to rock

Старый 05.01.2009, 11:38
Black_Hawk вне форума Посмотреть профиль Отправить личное сообщение для Black_Hawk Найти все сообщения от Black_Hawk
  № 5  
Ответить с цитированием
Black_Hawk

Регистрация: Jan 2009
Сообщений: 10
Эээ, а как это использовать?

Старый 05.01.2009, 12:38
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 6  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Делаем BitmapData размером с поле графика и расставляем точки с малым интервалом
__________________
4am is time to rock

Старый 05.01.2009, 14:26
Black_Hawk вне форума Посмотреть профиль Отправить личное сообщение для Black_Hawk Найти все сообщения от Black_Hawk
  № 7  
Ответить с цитированием
Black_Hawk

Регистрация: Jan 2009
Сообщений: 10
Да, теперь все понятно, спасибо!

Старый 05.01.2009, 16:17
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 8  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
а какая разница? как это на "угловатость" влияет?
Чем больше шаг следующего 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);
	}
}


Последний раз редактировалось Mnilionic; 05.01.2009 в 16:19.
Старый 05.01.2009, 17:03
Black_Hawk вне форума Посмотреть профиль Отправить личное сообщение для Black_Hawk Найти все сообщения от Black_Hawk
  № 9  
Ответить с цитированием
Black_Hawk

Регистрация: Jan 2009
Сообщений: 10
Вы правы, никак
линиями даже красивей получается, чем точками... понял это только теперь

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

Старый 06.01.2009, 21:14
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 10  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Ну, в конечном итоге все равно придется график аппроксимировать. Никогда при постройке графика не использовал curveTo.

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

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

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


 


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


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