Задача возникла из чистого любопытства: хотелось посмотреть, чем будет отличаться движение среды, состоящей из частиц, способных двигаться поступательно и вращаться (то есть вести себя как маленькие твердые тела) от среды, состоящей из невращающихся частиц (являющихся, по сути, большими материальными точками). Кроме того, интересно было посмотреть на что способен Box2D на весьма скромном компьютере 2007 года выпуска (Intel Core 2 Duo E6550 2.33GHz, RAM 2Gb, материнка Intel DG33FB с интегрированной видеокартой).

В качестве тестовой задачи я выбрал обтекание кругового цилиндра. Частицы представлялись динамическими телами, цилиндр и стенки -- телами статическими. "Шеренга" частиц с заданной начальной скоростью появлялась возле левого конца канала, обтекала (обстукивала?) цилиндр и исчезала после выхода из правого конца канала.

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

Движение частиц, способных двигаться поступательно и вращаться

Движение невращающихся частиц

Исходный код



Комментарии

comments powered by Disqus