На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Название темы должно быть информативным !
Прежде чем задать вопрос, воспользуйтесь Поиском. и проверьте в FAQ (ЧАВО) Паскаля
Чтобы получить вразумительный ответ, подробно опишите проблему: что надо сделать, что не получается и номер ошибки (если есть), которую выводит компилятор.
Для вставки кода ваших программ используйте, пожалуйста, кнопку СODE=pas или выпадающий список СODE для других языков (подсветка синтаксиса).
[!] Как правильно задавать вопросы | Руководство по языку B.Pascal 7 & Objects/LR | Borland Pascal. Руководство пользователя
Модераторы: volvo877
Страницы: (4) 1 2 [3] 4  все  ( Перейти к последнему сообщению )  
> Создание упругого трехмерного шара... , Моделирование упругого удара...
    а чо ето она утебя так дико тормозит?? ка сделать чтобы она не тормозила? и вобще помоему никого там не выворачивает
      Ну дык шаг-то 1Е-4, вычисления типом extended, один фрейм есть 100 циклов, да еще я его вообще никак еще не оптимизировал.
      А ты tor.dat ему в параметры подсовывал? У меня так после капитального сжатия вывернутый кусок тора проскочил насквозь еще нормальный smile.gif это было заметно по изменению цвета, после чего я ее вырубил.
        Цитата
        vesper1, 22.12.03, 18:33
        Ну дык шаг-то 1Е-4, вычисления типом extended, один фрейм есть 100 циклов

        ну, а в какой строчке ето записано??
        Цитата
        vesper1, 22.12.03, 18:33
        А ты tor.dat ему в параметры подсовывал? У меня так после капитального сжатия вывернутый кусок тора проскочил насквозь еще нормальный  это было заметно по изменению цвета, после чего я ее вырубил.

        подсовывал, но он у меня считался настолько медленно, что я его вырубил, не дождавшись действа
          Цитата
          wormball, 22.12.03, 20:05
          ну, а в какой строчке ето записано??

          Все есть в константах smile.gif или не все smile.gif Константа dt задает временной шаг, в основном цикле в строке for fr:=1 to 100 do begin меняешь 100 на что-нить еще, будет чаще перерисовываться.
          Кстати константы там все откомментированы.
          Цитата
          wormball, 22.12.03, 20:05
          подсовывал, но он у меня считался настолько медленно, что я его вырубил, не дождавшись действа

          Хе, а у тебя какой комп? У меня Р3-866, 6фпс считает sad.gif до оптимизации скорее всего дело не дойдет sad.gif
          Если хочешь, можешь включить давление, есть там такая строчка pressflag:=false; а строкой выше выражение для определения, а можно ли давление включать.
            да, чото их не по детски колбасит.....
            я думаю у тебя глюк в программе
              А не подскажешь где? wink.gif Я так глюка не нашел. Куб прыгает как надо, треугольник тоже smile.gif шарик тоже... Значит чего-то не хватает тору, чтоб он тоже прыгал sad.gif
                а если шаг в 10 раз увеличить, то их тоже колбасить начинает! мож параметры надо поменять?? ты кстати центр каждый раз рассчитываешь?

                зы.а мож ты у пружин всётаки полярность перепутал??
                Сообщение отредактировано: wormball -
                  жёсткость 283, давление 150, для всех фигур, реакция опоры 6, шаг 0.001. всё вроде правильно.
                  Сообщение отредактировано: wormball -
                    Цитата
                    wormball, 23.12.03, 17:42
                    зы.а мож ты у пружин всётаки полярность перепутал??

                    Неа smile.gif Я об этом думал. Ради проверки взял и поменял, тор на 10м фрейме (тогда еще шаг был 0.01, жесткость 13.6, давление 0.15, трение 0.03) он НЕМЕДЛЕННО разорвался laugh.gif laugh.gif
                    Цитата
                    wormball, 23.12.03, 17:42
                    а если шаг в 10 раз увеличить, то их тоже колбасить начинает!
                    Я так понял, если pe*dt>1, начинают сказываться машинные нули ohmy.gif ohmy.gif просто алгоритм берет 1е-19, и начинает на каждом шаге их множить, все и взрывается. Это недостаток численного интегрирования на компах sad.gif
                    Цитата
                    wormball, 23.12.03, 18:17
                    жёсткость 283, давление 150, для всех фигур, реакция опоры 6, шаг 0.001. всё вроде правильно.

                    Ага, ну и круто. А тор что, не выворачивается? Ща проверю.
                    И правда, прыгает smile.gif
                    Цитата
                    wormball, 23.12.03, 17:42
                    ты кстати центр каждый раз рассчитываешь?
                    Хм. Спасибо, это же громадный гемор sad.gif Поправил, у меня прям летает smile.gif))))
                      Цитата
                      vesper1, 23.12.03, 19:53
                      если pe*dt>1, начинают сказываться машинные нули  просто алгоритм берет 1е-19, и начинает на каждом шаге их множить, все и взрывается

                      почему нули?? помоему как раз наоборот
                      Цитата
                      vesper1, 23.12.03, 19:53
                      Хм. Спасибо, это же громадный гемор  Поправил, у меня прям летает ))))

                      ыы? я ж совсем другое имел в виду! ежели ты его вычисляешь на первом шаге, то утебя ведь фигура едет, а центр стоит!! так что надо на каждом шаге его вычислять, а тормозит у тебя имхо главным образом графика.

                      и вобще, как ты пружинки задаёшь? только по сетке или каждая точка соединена с каждой другой??

                        Цитата
                        wormball, 23.12.03, 21:05
                        почему нули?? помоему как раз наоборот
                        Я имел в виду, при каждом шаге неизбежны ошибки в примерно 1е-19 в расстоянии между точками. Потом в applysprings етот 1е-19 множится на ре, а в updatevelocity на дт, в результате ошибка нарастает лавинообразно.
                        Цитата
                        wormball, 23.12.03, 21:05
                        ыы? я ж совсем другое имел в виду! ежели ты его вычисляешь на первом шаге, то утебя ведь фигура едет, а центр стоит!! так что надо на каждом шаге его вычислять
                        Я его вычислял вместо одного раза 504 sad.gif((((( вычисление стояло в цикле в applypressure. Я же говорил, оптимизации никакой sad.gif

                        Цитата
                        wormball, 23.12.03, 21:05
                        как ты пружинки задаёшь? только по сетке или каждая точка соединена с каждой другой?
                        По сетке, там есть массив masgran, он и хранит всю сетку. Я по нему прохожу до инитграфа, генерируя masspring достаточно тупым алгоритмом, а именно проверяю, есть ли уже пружина, связывающая эти вершины, и если нет, связываю.
                        Цитата
                        wormball, 23.12.03, 21:05
                        а тормозит у тебя имхо главным образом графика.
                        Это вполне возможно, я не подвергал ету прогу анализу по времени. Там в среднем 6 раз считаются нормали граней, правда они динамические, но мне влом делать еще один массив в куче.
                          Цитата
                          vesper1, 23.12.03, 20:16
                          Я имел в виду, при каждом шаге неизбежны ошибки в примерно 1е-19 в расстоянии между точками. Потом в applysprings етот 1е-19 множится на ре, а в updatevelocity на дт, в результате ошибка нарастает лавинообразно.

                          тоже мне неточность нашёл! там возникают неточности куда более чудовищного масштаба. а именно, когда ты подвигаешь точку на конечное приращение, ты говоришь, что её скорость постоянна на всём промежутке dt, хотя она в натуре меняется, и когда ты приращиваешь скорости, ты опять же говоришь что сила постоянна. поетому шаг интегрирования берут не более 1/10 периода самого быстрого колебания.

                          Добавлено в
                          Цитата
                          vesper1, 23.12.03, 20:16
                          Я его вычислял вместо одного раза 504 ((((( вычисление стояло в цикле в applypressure. Я же говорил, оптимизации никакой

                          кинь мне исправленную версию! самому лень разбираться
                            Цитата
                            wormball, 23.12.03, 21:53
                            а именно, когда ты подвигаешь точку на конечное приращение, ты говоришь, что её скорость постоянна на всём промежутке dt, хотя она в натуре меняется,

                            Здесь ты неправ, когда я двигаю точку, я считаю, что скорость в процессе меняется, по линейному закону, а вот с силой это действительно так, она считается неизменной на всем dt.
                            Цитата
                            wormball, 23.12.03, 21:53
                            кинь мне исправленную версию! самому лень разбираться

                            Ааа, не любишь копаться в чужом коде? Согласен, темный лес. Щас. (Я сейчас не дома, а править там почти нечего)
                            Хм. А здесь тор сначала сплющился, а потом все-таки прыгнул, восстановив форму.
                            Сообщение отредактировано: vesper1 -

                            Прикреплённый файлПрикреплённый файлJUMPBALL.PAS (11.32 Кбайт, скачиваний: 374)
                              Цитата
                              vesper1, 24.12.03, 09:01
                              Здесь ты неправ, когда я двигаю точку, я считаю, что скорость в процессе меняется, по линейному закону

                              не! когда ты считаешь что dx=v*dt, то v у тебя постоянно.
                              и вобще чото у тебя с пружинками. я давление увеличил, а кубик симметрию потерял.
                              да и вобще чото не такое уж большое увеличение скорости sad.gif
                                :) У меня dx=(2v+dv)*dt/2, а точнее dx=v*dt,dx:=(dx+(v+dv)*dt)/2;
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (4) 1 2 [3] 4  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,1427 ]   [ 14 queries used ]   [ Generated: 17.09.25, 06:44 GMT ]