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

SashaBorandi 11.08.2010 18:47

Как реализовать эту математическую функцию?
 
Ребята, помогите мне "Не сломать мозги"..

Нужно какимто образом зациклить комбинация цифр:

0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0 и дт...

Допустим есть переменная равная скажем 2. И мы прибавляем к нему 3 получаем 0 из списка выше.

Тоесть быть проще:

2 + 3 = 0
2 + 2 = 4
0 + 4 = 4
4 + 1 = 0

что то типо того..

тожесамое нужно и если мы отнимаем..

Вопрос как реализовать эту математическую функцию???

udaaff 11.08.2010 18:57

Остаток от деления на 5 в помощь.

VVall 11.08.2010 18:59

(2+3)%4=1

С отрицательными числами сложнее, можно сместить 0 на время прибавления.

udaaff 11.08.2010 19:08

VVall, 2 + 3 = 0 должно быть.

Cos 11.08.2010 19:22

num>max ? (num-min)%(max-min)+min : num<min ? (num+min)%(max-min)+max : num;

SashaBorandi 11.08.2010 19:24

Вот спасибо Вам!

Решил задачу

Код AS3:

private var _numberCenterImage:int = 2;
 
private function plusCenterImage(num:int):int {
                        var n:int = _numberCenterImage + num;
 
                        if (n <= 4) {
                                n = n;
                        } else if (n > 4) {
                                //n = - ((4 - _numberCenterImage) - num) - 1;
                                n = ((_numberCenterImage + num) % 4) - 1;
                        }
 
                        return n;
                }
 
                private function minusCenterImage(num:int):int {
                        var n:int = _numberCenterImage - num;
 
                        if (n >= 0) {
                                n = n;
                        } else if (n < 0) {
                                n = ((_numberCenterImage + num) % 4) + 1;
                        }
 
                        return n;
                }


VVall 11.08.2010 21:51

Цитата:

Сообщение от udaaff (Сообщение 928322)
VVall, 2 + 3 = 0 должно быть.

%4 - от 0 до 3, но не 4. 4%4=0, 5%4=1

udaaff 11.08.2010 22:13

Я имел в виду:
Цитата:

Тоесть быть проще:
2 + 3 = 0
2 + 2 = 4
0 + 4 = 4
4 + 1 = 0

-De- 12.08.2010 00:05

но башку вы ему задурили и он пишет %4, а не %5 =)))
(5 + (n+m)%5)%5 работает и для отрицательных.
Ну и в реальной функции 5 надо бы сделать константой, а то ударит в голову сделать не 5, а 4 или 6 изображений и вместо изменения одной циферки получается гемор.

SashaBorandi 12.08.2010 09:07

Цитата:

Сообщение от -De- (Сообщение 928370)
но башку вы ему задурили и он пишет %4, а не %5 =)))
(5 + (n+m)%5)%5 работает и для отрицательных.
Ну и в реальной функции 5 надо бы сделать константой, а то ударит в голову сделать не 5, а 4 или 6 изображений и вместо изменения одной циферки получается гемор.

Офигеть! то что надо! Способа большое!


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

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