Quest3D - Русскоязычное сообщество

Quest3D => Логика => Тема начата: anval от 23 Января 2009, 21:33:00



Название: Математическая проблемка
Отправлено: anval от 23 Января 2009, 21:33:00
Всем привет.Чегото заклинило меня.Никак не соображу.Значение вручную,кнопкой,меняется с 18 до 30.Мне нужно,чьобы у другого value менялось параллельно с 29 до 32.
Прибдлизительно сделать не проблема,а вот точную формулку никак.


Название: Re: Математическая проблемка
Отправлено: Const_47 от 24 Января 2009, 00:11:55
Очень просто :)))
Если шаг не имеет значения, то используй Envelope сhannel
х координата входной параметр, y координата выходной.
NewKey 1 = (x=18,y=29) 
NewKey 2 = (x=30,y=32)
И не нужно никаких формул:)))

Но!!! припустим у тебя специфическое задание и Envelope из каких-то чисто твоих соображений тебе не подходит.
Тогда давай посчитаем диапазон
1) 30 - 18 = 12
2) 32 - 29 = 3

Пусть у тебя 5 кликов кнопкой чтобы твое значение изменилось
из 18 до 30 тогда один клик в диапазоне 12 = 12\5 = 2,4
а в 3 = 3\5 = 0,6. То есть один шаг твоего диапазона 12 =  2,4 а 3 = 0,6, тогда 4 шага диапазона 12 = 2,4*4 = 9,6 
а диапазона 3 = 0,6*4 = 2,4 :)))       


Название: Re: Математическая проблемка
Отправлено: anval от 24 Января 2009, 11:18:40
Конечно же Envelope!!!Вот я торможу:) А  уже собрался повторно курс математики проходить.Спасибо.


Название: Re: Математическая проблемка
Отправлено: Glow от 05 Февраля 2009, 19:00:30
А вот просто в Expression сделать A=1?29:18 можно поставить  B и С  - A=1?B:C енвелопе по ламерски:)


Название: Re: Математическая проблемка
Отправлено: Const_47 от 05 Февраля 2009, 20:14:44
&Glow
Что то я не понял. 


Название: Re: Математическая проблемка
Отправлено: IYV от 15 Марта 2009, 00:10:58
Помогите простую задачку решить,второй день уже бьюсь,все в пустую.Как известно,при срабатывания условия у IF значение из левой части копируется в правую,а я пытаюсь добиться,что бы значение в правой части осталось прежним и только после  изменении значения левой части менялось.Мне это нужно для переключения текстур.Прикрепляю скрин.Спасибо заранее.


Название: Re: Математическая проблемка
Отправлено: Const_47 от 15 Марта 2009, 00:25:43
Дело в том что твое значение изменится тогда, когда будет собсно вызван канал set value, а не тогда, когда изменится какая то его часть;)

Я припускаю что ты пытаешся обойти какой то свой глюк, изобретая велосипед. Может ты поставиш задачу более шире, тогда бы я смог помочь более конкретно.           


Название: Re: Математическая проблемка
Отправлено: IYV от 15 Марта 2009, 01:10:25
Возможно это действительно бредовая идея.Я даже не знаю как более шире то рассказать,трудно сформулировать... Ну перед тем как вызвать канал set value он же в правой части хранит значение.Это значение уже используется как индекс в массиве.Т. е определенной кнопке соответствует определенная текстура.Вот канал вызывается,но у него в левой части другое значение,в данном случае 3 и это значение в момент вызова переходит в правую часть. 4 меняется на 3. Т е я кликаю  на кнопку,что бы активизировалось меню выбора текстур для этой кнопки и тут же слетает прежняя текстура,для которой индекс в массиве был 4 и меняется на другую,которой соответствует тройка.Вот я и пытался сделать так,что бы при вызове set value правая часть оставалась прежней(чтоб текстура не слетала),до момента пока не поменяется значение левой части.Но похоже что это пустая затея и ни какими формулами ее не решишь. :)Надо просто идти другим путем.


Название: Re: Математическая проблемка
Отправлено: Const_47 от 15 Марта 2009, 14:17:08
Я мало что понял. Загрузи на файлообменник .сgr, со своей проблемой, только все лишнее пообрезай, оставь только то, что явно или коственно имеет отношение к вопросу. Я обязательно посмотрю.


Название: Re: Математическая проблемка
Отправлено: KBECT0MAH от 15 Марта 2009, 17:20:26
IYV, я хоть и русский но тоже не совсем понял что ты написал ;)
Ты хочешь при помощи только одного "Сет валуе" переключать несколько текстур?
Так же ты упоминал "меню", но как ты его делал совсем не понятно, ведь меню
можно сделать несколькими способами.

Лучше сделай как посоветовал уважаемый Const_47, выложи исходник.

Ещё можешь посмотреть мой вариант переключения текстур из массива (http://guest3d.wohlnet.ru/forum/index.php?topic=60.msg4622#msg4622). Только сразу
предупреждаю, это моя первая встреча с массивами и там нет оптимизации  ::) делал
как получится, что бы заработало. Там на каждую кнопку свой "Сет валуе" с разными
значениями (0, 1, 2), то есть - сколько кнопок, столько "Сетов" с номером строки.
Возможно тебе не пригодятся колонки "On", поясню для чего они у меня:
у меня кнопки имеют две текстуры, простая(0) и с рамкой(1).
В таблице массива - сколько кнопок, столько колонок "On". Они отвечают за смену
текстуры при нажатие на другую кнопку.
.


Название: Re: Математическая проблемка
Отправлено: IYV от 16 Марта 2009, 02:31:30
Прошу пращения,обманул запутал :)Проблемма оказалась совсем в другом,тупил целый день и не заметил,отдыхать надо больше.Вот выкладываю исходник,но теперь не могу осилить две задачи.1) У меня в меню выбора объекта,происходит активизация кнопки только при наведения курсора,а хочется сделать чтобы совместно с ЛКМ.
2)В верхнем меню выбора текстур не получается зафиксировать подсветку кнопки.Буду очень благодарен,если поможите разобраться с этим.
KBECT0MAH,посмотрел твой вариант,прикольно,у меня кстати  почти тоже самое выходит,правда я еще использовал ForLoop.Только у меня своиством материалла подсвечивается нажатие,а не сменой текстуры.


Название: Re: Математическая проблемка
Отправлено: Const_47 от 16 Марта 2009, 16:56:16
& IYV

Если я правильно понял ты это хотел (смотря на исходник, и перечитывая твои посты сверху)
http://rapidshare.com/files/209881423/testFIX.rar.html

Я старался вносить самые минимальные коррективы в твои логические цепочки, так как подозреваю что это часть чего то
более большого. Но все же, кое что на мой взгляд не нужное я выбросил.




Название: Re: Математическая проблемка
Отправлено: IYV от 16 Марта 2009, 18:52:07
& Const_47
Спасибо огромное ;D,именно этого я и пытался сделать.И как всегда,все оказалось на много проще.И я до этого вряд ли бы додумался :(.