Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#31: 2010-09-10 00:16:37 ЛС | профиль | цитата
Dilma писал(а):
Пункты 1 и 4 я кстате не понял

Пункт 1
Tad писал(а):
1. Нужно точно рассчитывать значения для каждого If (без калькулятора - никуда)
нужно сидеть с калькулятором и считать значения для каждого If_else
Пункт 4
Tad писал(а):
4. If-ы должны быть расположены в порядке возрастания значений Op2.

Вот пример.
code_20516.txt
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_20516.txt [1.9KB] [186]
Администрация
Ответов: 15295
Рейтинг: 1519
#32: 2010-09-10 00:28:36 ЛС | профиль | цитата
Tad писал(а):
нужно сидеть с калькулятором и считать значения для каждого If_else

не нужно

Tad писал(а):
Вот пример.

не верно. В IF предполагалось задавать верхнюю границу счетчика, после которого начинается следующий этап анимации. Поэтому IF-ы должны быть расположены в порядке следования сцен, а не иначе.

Собственно это макет - более менее потребная для пользователя схемы была дана сообщением выше (более менее потому, что над реализацией делителя частоты предлагается подумать самостоятельно)
карма: 27
0
Ответов: 301
Рейтинг: 11
#33: 2010-09-10 00:29:35 ЛС | профиль | цитата
Tad писал(а):
Вот пример.

во втором должно быть 420. тоесть количество кадров в первом + количество кадров во втором. а else последнего - стоп таймер и завершение или рестарт счетчика.
карма: 0

0
Разработчик
Ответов: 26304
Рейтинг: 2146
#34: 2010-09-10 01:22:09 ЛС | профиль | цитата
Вот еще решение задачи про таймер на последовательном алгоритме, по принципу, предложенному Dilm-ой

code_20518.txt


карма: 22

0
файлы: 1code_20518.txt [1.5KB] [170]
Администрация
Ответов: 15295
Рейтинг: 1519
#35: 2010-09-10 01:39:08 ЛС | профиль | цитата
evgenyatam писал(а):
во втором должно быть 420. тоесть количество кадров в первом + количество кадров во втором. а else последнего - стоп таймер и завершение или рестарт счетчика.

именно так
------------ Дoбавленo в 01.39:
nesco писал(а):
Вот еще решение задачи про таймер на последовательном алгоритме, по принципу, предложенному Dilm-ой

только это последовательное одиночное срабатывание событий через заданный интервал.
карма: 27
0
Ответов: 1376
Рейтинг: 198
#36: 2010-09-10 01:42:56 ЛС | профиль | цитата
Схему от Nesco можно дополнить и так
code_20519.txt
карма: 1

0
файлы: 1code_20519.txt [1.9KB] [164]
Разработчик
Ответов: 26304
Рейтинг: 2146
#37: 2010-09-10 01:43:54 ЛС | профиль | цитата
Dilma писал(а):
только это последовательное одиночное срабатывание событий через заданный интервал

А разве не так надо было -- последовательно выполнять ряд действий через определенный промежуток времени
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#38: 2010-09-10 01:47:28 ЛС | профиль | цитата
evgenyatam, а я что писал ?
Tad писал(а):
4. If-ы должны быть расположены в порядке возрастания значений Op2.

В "День программиста" минимальная частота 10 мс.
Значит, чтобы первыми перебрать 9 месяцев с интервалом в 1сек мне нужно в первый If загнать 100*9=900 интераций счетчика, а для выдачи события при значениях счетчика 100, 200, 300, 400, 500, 600, 700, 800, 900 с номерами 1,2,3,4,5,6,7,8,9 применять делитель

Хоть вы меня убейте, можно использовать, но городить огород с одним таймером, наверное всё ж таки в данном конкретном случае лишнее.
code_20520.txt

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_20520.txt [1.9KB] [209]
Администрация
Ответов: 15295
Рейтинг: 1519
#39: 2010-09-10 01:47:28 ЛС | профиль | цитата
nesco писал(а):
А разве не так надо было

нет. Чтобы построить анимацию надо на одной точке IndexToChannel получать группы событий с номером кадра. А твоя схема скорее решает задачу взлета космического шатла, когда по достижению той или иной высоты срабатывает разовый сигнал для отделения ступеней
карма: 27
0
Разработчик
Ответов: 26304
Рейтинг: 2146
#40: 2010-09-10 01:49:27 ЛС | профиль | цитата
foksov писал(а):
можно дополнить и так

Запись по 0 не нужна, а то получается лишнее событие

code_20521.txt
------------ Дoбавленo в 01.49:
Dilma писал(а):
А твоя схема скорее решает задачу взлета космического шатла, когда по достижению той или иной высоты срабатывает разовый сигнал для отделения ступеней

А что, тоже неплохо, такие задачи иногда встречаются
карма: 22

0
файлы: 1code_20521.txt [1.7KB] [152]
Администрация
Ответов: 15295
Рейтинг: 1519
#41: 2010-09-10 01:50:22 ЛС | профиль | цитата
Tad писал(а):
Значит, чтобы первыми перебрать 9 месяцев с интервалом в 1сек мне нужно в первый If загнать 100*9=900 интераций счетчика

Tad, вы опять включили stupid mode Или реально не понимаете отличие макета от технического решения?
карма: 27
0
Ответов: 1376
Рейтинг: 198
#42: 2010-09-10 01:51:51 ЛС | профиль | цитата
[flood] Это я для себя её подцеплял, для наблюдения[/flood]
карма: 1

0
Разработчик
Ответов: 26304
Рейтинг: 2146
#43: 2010-09-10 02:30:33 ЛС | профиль | цитата
Похоже, что под последовательный алгоритм схема от Dilm-ы оптимальная. Я свою сколько не упрощал, пришел к тому же результату, чуть ли, ни один в один
------------ Дoбавленo в 02.30:
Вот, аналог схемы Dilm-ы, но на других компонентах при том же количестве



Add(MainForm,11062187,112,238)
{
Width=270
}
Add(Timer,13973712,112,287)
{
link(onTimer,14832139:doNext,[])
}
Add(Math,7673138,350,252)
{
OpType=1
Op2=1
ResultType=0
link(onResult,10855501:doEvent1,[])
}
Add(IndexToChanel,7969369,525,343)
{
Count=3
Point(Index)
Point(Data)
link(onEvent1,11659732:doText,[(576,349)(576,314)])
link(onEvent2,13742329:doText,[])
link(onEvent3,15891592:doText,[(576,363)(576,398)])
link(Index,2262443:Var3,[(531,222)])
link(Data,14832139:Count,[(538,328)(181,328)])
}
Add(Case,8311424,434,259)
{
Value=Integer(0)
DataOnTrue=Integer(0)
link(onNextCase,5851293:doData,[(488,265)(488,349)(232,349)(232,300)])
link(onTrue,3780961:doNext,[(478,272)(478,153)(233,153)(233,181)])
}
Add(Counter,3780961,245,175)
{
Max=1000
link(onNext,14832139:doReset,[(292,181)(292,165)(160,165)(160,307)])
}
Add(Hub,10855501,399,252)
{
link(onEvent1,7969369:doEvent,[(496,258)(496,349)])
link(onEvent2,8311424:doCase,[])
}
Add(Label,11659732,595,308)
{
Left=175
Top=10
}
Add(Label,13742329,595,350)
{
Left=175
Top=30
}
Add(Label,15891592,595,392)
{
Left=175
Top=50
}
Add(StrList,4803957,294,245)
{
Strings=#2:10|2:20|2:10|
Point(doGetString)
Point(onGetString)
Point(IdxToSelect)
Point(doReplace)
link(Str,7673138:Result,[(300,233)(339,233)(339,295)(356,295)])
link(onGetString,7673138:doOperation,[])
link(IdxToSelect,2262443:Var2,[])
}
Add(Counter,14832139,175,287)
{
Max=1000
link(onNext,4803957:doGetString,[])
}
Add(DoData,5851293,245,294)
{
link(onEventData,4803957:doReplace,[])
link(Data,14595218:Var2,[])
}
Add(GetDataEx,14595218,245,217)
{
link(Data,3780961:Count,[])
}
Add(GetDataEx,2262443,308,217)
{
Angle=3
link(Data,14595218:Var3,[])
}

карма: 22

0
Ответов: 1376
Рейтинг: 198
#44: 2010-09-10 03:04:52 ЛС | профиль | цитата
И вот такой ещё вариант
code_20522.txt
карма: 1

0
файлы: 1code_20522.txt [1.1KB] [156]
Ответов: 305
Рейтинг: 4
#45: 2010-09-10 09:12:23 ЛС | профиль | цитата
[offtop]Что то эскей и баксспейс не работают, но нсеравно норм [/offtop]
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)