![]() |
|
||||||||||
|
|||||
|
Нужно описать небольшую функцию. Так, чтобы передавая x (distance) получать y (power). Точки А и В по оси y всегда лежат на единице, но по оси x их можно задавать.
Супер точно не нужно, вот приблизительный график:
__________________
Дети не должны знать о своих родителях |
|
|||||
|
Регистрация: Jun 2011
Сообщений: 60
|
Эм. (x + a)^2 - это сдвиг функции x^2 по оси x на а. А тут вроде бы надо растягивать: сx^2
|
|
|||||
|
Цитата:
function getPos(x:Number, A:Number, B:Number):Number{ if (x < A) return (x + A - 1) * (x + A - 1); else if (x < B) return 1; else return (x - 1) * (x - 1); } var A:Number = 0.7; var B:Number = 0.8; var margin:Number = 200; var step:Number = 150; this.graphics.beginFill(0xff0000); this.graphics.moveTo(margin-20, margin); this.graphics.lineStyle(1, 0x000000, 0.5); this.graphics.lineTo(margin+step, margin); this.graphics.moveTo(margin, margin+20); this.graphics.lineTo(margin, margin-step); this.graphics.moveTo(margin, margin); for(var i:Number = 0; i<=1; i+=0.03){ this.graphics.lineStyle(1, 0x000000, 1); var _x:Number = margin+i*step; var _y:Number = margin+(-getPos(i, A, B)*step); this.graphics.lineTo(_x, _y); this.graphics.lineStyle(0, 0, 0); this.graphics.drawCircle(_x, _y, 2); this.graphics.moveTo(_x, _y); }
__________________
Дети не должны знать о своих родителях |
|
|||||
|
Регистрация: Jun 2011
Сообщений: 60
|
Для первого куска y = сx^2, где с=1/A^2
|
|
|||||
|
Modus ponens
|
ОК, вот, вобщем, с
Что мы делаем: в промежутке от 0 до А - чертим функцию y = x^2 сжатую по горизонтали так, чтобы при x = 1, мы бы получили y = A. Следующий промежуток в объяснениях не нуждается - а в последнем - делаем практически то же самое, что и в первом, за исключением того, что мы эту самую квадратичную функцию перевернули горизонтально. Ну и, соответсвенно, сжали ее так, чтобы при x = B, y = 1.
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 24.09.2012 в 22:14. |
|
|||||
|
wvxvw,
Спасибо большое, только с последним промежутком не получается, слишком большое значение выдает. И скобки где-то не хватает:
__________________
Дети не должны знать о своих родителях |
|
|||||
|
Modus ponens
|
Упс, сорри, опечатался, пофиксил.
Да, еще, такой момент, если это нужно, то "выпуклость" можно регулировать с помощью степени, в которую возводим инкремент.
__________________
Hell is the possibility of sanity |
|
|||||
|
А может тупо кривыми безье семулировать, если подгонка коэффициентов и формул кажется муторной?
Сама безье: https://github.com/cser/temperate/bl...MQuadBezier.hx А здесь меня заломало вычислять коэффициенты для парабол (эмуляция изинга отскакивающего несколько раз мячика) и просто нарисовал функцию: https://github.com/cser/temperate/bl...ing/MBounce.hx |
![]() |
![]() |
Часовой пояс GMT +4, время: 04:36. |
|
|
« Предыдущая тема | Следующая тема » |
|
|