?

Log in

No account? Create an account
разрыв шаблона - Поклонник деепричастий [entries|archive|friends|userinfo]
Anatoly Vorobey

[ website | Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Links
[Links:| English-language weblog ]

разрыв шаблона [мар. 27, 2013|02:41 am]
Anatoly Vorobey
[Tags|]

Вот эта ткань на Джаваскрипте, которую можно тянуть левой кнопкой мышки и рвать правой - весьма и весьма впечатляет. Главным образом тем, как мало там кода - см. правую колонку.

В обсуждении на реддите всплыла ссылка на разумно написанную статью, которая объясняет эту технику.
СсылкаОтветить

Comments:
From: dmpogo
2013-03-27 01:09 am
Она рвется даже когда просто двигать резко с нажатой левой кнопкой
(Ответить) (Thread)
[User Picture]From: argo_navis
2013-03-27 01:45 am
а еще оторванные куски внизу зачем-то двигаются
(Ответить) (Parent) (Thread)
[User Picture]From: lone_guardian
2013-03-27 02:41 am
Но это надо tear_distance понижать тогда, на дефолтных так порвать не получилось.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: zelych
2013-03-27 04:30 am
Это специально сделано, там в 98-й строчке условие соответствующее.
(Ответить) (Parent) (Thread) (Развернуть)
From: dmpogo
2013-03-27 03:24 am
Сколько пафоса из тривиальностей типа итерационного метода.
(Ответить) (Thread)
[User Picture]From: plakhov
2013-03-27 06:53 am
Любая "игровая физика" использует тривиальные методы. Проблема в том, что 19 из 20 тривиальных методов не работают ("взрываются" или дают неправдоподобно выглядящие результаты), а работающий двадцатый сильно зависит от констант. Я уже в геймдеве давно не работаю, но если брать по состоянию на 5 лет назад, очень полезная демка: всё вменяемо выглядит, ничего не расходится, приведены исходники со всеми константами.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: janatem
2013-03-27 07:30 am
Забавно, порядок обхода при обсчете важен: если увеличить гравитацию на порядок, то начинает само отрываться, причем всегда справа налево, хотя должно бы стохастично.

Интересно, усложнится ли код радикально, если имитировать настоящую физичную параллельность. Вроде бы нет — достаточно продублировать состояние и вычислять в чисто функциональном стиле next_state = f(curr_state), а потом итерационно менять переменные.
(Ответить) (Thread)
[User Picture]From: plakhov
2013-03-27 07:41 am
Ещё интересно, что начинает отрываться на волшебном числе 4993 (не на 5000).
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: kray_zemli
2013-03-27 11:06 am
Код усложнится, но главное:

1. Либо будет использоваться неявная схема, которой сопутствует совсем другой порядок по быстродействию (эдак что-нибудь типа куба от числа вершин)

2. Либо будет использоваться явная схема, но с уловием устойчивости, связанным с ограничением скорости распространения сигнала (а это значит, что жёсткость растянутой ткани должна быть конечной).

Последовательный обход является "костылём", принцип действия которого основан на нефизичном сочетании подходов 1 и 2. Не смотря на это, при достаточно малом временном шаге это может работать довольно неплохо для широкого класса условий.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: askold
2013-03-27 07:39 am
А вот если ткань потянуть наверх, так колбасить начинает^^
(Ответить) (Thread)
[User Picture]From: xenko
2013-03-27 10:18 am
в бытность бесядовский подкинул задачу.. невесть что, конкретные данные можно прогнать через ансис и спать спокойно

задача о гибком крыле
например, парусе

нужно в зависимости от угла гика вычислить напряжения в точках паруса и собственно их положение в пространстве
усложнение 1. парус тянется
усложнение 2. скорость потока на разных срезах (высотах) разная

до сих пор никто не решил
все вот тоже - тряпочками махали
(Ответить) (Thread)
[User Picture]From: kray_zemli
2013-03-27 10:52 am
Да это задача для целого института!

1. Моделировать движение лодки в море с этими его волнами
2. Моделировать гибкий парус
3. Моделировать трубулентное обтекание
4. Все эти модели закодить, да так, чтобы пункты 1,2,3 были хорошо согласованны друг с другом.
(Ответить) (Parent) (Thread)
[User Picture]From: xenko
2013-03-27 10:59 am
первый п. не суть - мы и экранолеты так же моделируем
с гибким парусом вообще дикие проблемы
бесядовский и иже с ним только тему жуковского признают - а она не работает, а им надо чтоб в русле
насчет турбулентного - скажем так, я лично его просто как неустойчивое ламинарное рассматриваю - в определенных масштабах

а про целый институт - видели мы. всю работу делают две башки а стопицот людей для замены воды в кулере
(Ответить) (Parent) (Thread) (Развернуть)
From: onanymous.myopenid.com
2013-03-27 01:24 pm
http://www.lenta.ru/news/2013/03/26/excel/
(Ответить) (Thread)
[User Picture]From: morfizm
2013-03-28 02:08 am
А у меня разрыва шаблона не произошло!
Противный UI баг моментально вернул всё на свои места:
Если нажимаешь мышу на ткани, а потом уводишь за пределы canvas, и там отпускаешь, а потом возвращаешь мышь на ткань, то мышь "нажата" (отпускание не зафиксировано).
(Ответить) (Thread)