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

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

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
По умолчанию Составить прогибаемую функцию с заданной площадью

Область определения условно: от 0 до 10.

Помогите пожалуйста составить такую функцию, в которой можно было бы задавать определённый коэффициент, изменяя величину "прогиба" графика, но при этом, общая площадь должна оставаться заданной.
k1 - Изменяемый коэффициент
k2 - Заданная площадь

(Коэффициент k1 должен быть динамическим, изменяя который мы прогибаем функцию, не изменяя её площади)
Нажмите на изображение для увеличения
Название: func.png
Просмотров: 67
Размер:	23.9 Кб
ID:	30676
__________________
Дети не должны знать о своих родителях

Старый 02.04.2014, 15:27
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
если диапазон (0..10 ) не меняется, то можно просто степенной функцией
Код AS3:
(1 + k) * Math.pow(x / A, k);// A=10
Добавлено через 26 минут
Код AS3:
var coef:Array = [0.5, 1, 1.5, 3];
graphics.lineStyle(0);
for (var i:int = 0; i < coef.length; i++) 
{
	for (var x:Number = 0, s:Number=0; x < 10; x+=0.05) 
	{
		var k:Number = coef[i];
		var y:Number = (1 + k) * Math.pow(x / 10, k);
		s += y;
		x?
		graphics.lineTo(x * 20, 300-50 * y):
		graphics.moveTo(x * 20, 300-50 * y);
 
	}
	trace( "s : " + s );
}

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

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Для степенной функции, где k1 - показатель степени, и фиксированного отрезка, [0,10] как у вас, боюсь, не существет множества коэффициентов (показателей степени). Другими словами, вид функции должен быть специальным (не степенная, это слишком простой вид).
Действительно, x^k1*x/k2 = x^(k1+1)/k2. Первообразная - x^(k1+2)/((k1+2)*k2). Подставив граничные значения, получим 10^(k1+2)/((k1+2)*k2) = 50. Это уравнение разрешается относительно k1 и имеет единственное решение k1=2(при k2=50).
Т.е. нет множества решений, оно одно. Вывод - искать другой вид параметризуемой функции с "прогибом".
Можно попробовать искать вид функции в виде полинома. Но визуально "прогиб" заметно вряд ли будет сильно меняться.

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
silin,
Ты просто гений. Рабочий практичный пример. Однако ещё подумаю над другими вариантами, может зашёл не с того боку..

alexcon314,
Спасибо.
__________________
Дети не должны знать о своих родителях

Старый 02.04.2014, 16:56
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 5  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
alexcon, а что не так: интеграл (k+1)*x^k на [0..1] для любого k будет 1, в чем проблема загнать сюда любой фиксированный диапазон, почему не будет непрерывного множества решений ?

Старый 02.04.2014, 17:03
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 6  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
да, silin - гений. Я сам себя запутал. Не дотумкал подсунуть множитель (k+1). Твое решение - то что нужно.

(k+1)*(x^k)/A^k ->(интеграл) x^(k+1)/A^k = C; x^(k+1) = C*A^k; C=A (это фиксированная площадь, A - диапазон) при любом k и при фиксированном x=A. Респект. Для визуализации самое то.
Дешево и сердито. Для пущей красоты

Код AS1/AS2:
s += y*0.05;
Тогда и трейсы выведут ~A.


Последний раз редактировалось alexcon314; 02.04.2014 в 17:32.
Старый 02.04.2014, 19:13
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 7  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
x?
Что это за инопланетсво ?
__________________
Марк Tween

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
in4core,
Обычное условие
Код AS3:
a > b?true:false
__________________
Дети не должны знать о своих родителях

Старый 02.04.2014, 22:01
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 9  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
x? на отдельной строке - да, малость сбивает. Но приглядишься - совсем неплохо .

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

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

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


 


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


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