LINUX.ORG.RU

поделка на C: openGL + openmotif

 , openmotif,


0

0

Здравствуйте!

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

Просто, но всё-же на соурс-фордж выложил: https://sourceforge.net/projects/xmgravdots/

Если кто хочет попробывать: зависит от openmotif-библиотек (libXm.so.4), библиотеки X11 и OpenGL. Никуда в файловую систему не лезет, ибо это просто визуализация. Известные неполадки: на видеокартах intel i845 и ей подобных не будет работать 99.9% (как-то связано с функциями, которые используются для добавления openGL конекста в openmotif, ещё не разобрался).

По поводу скриншота: DE: xfce-4.6.1, wallpaper когда-то давно взят у Sylvia: http://www.linux.org.ru/gallery/screenshots/4722653

>>> Просмотр (1280x1024, 648 Kb)



Проверено: JB ()

Ответ на: комментарий от Eddy_Em

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

ничего, скоро запустят lhc, чего нить обнаружат

ip ★★★★
()
Ответ на: комментарий от lipstick

Модель гравитации с такой кучей точек и простая? Это же как?

Законы Ньютона же.

А ничего, что они действуют только в модели плоской изотропной Вселенной? Т.е. не работают нигде (в качестве большого приближения ими, конечно, можно пользоваться для расчета движения тел с малыми массами на больших расстояниях друг от друга при малых скоростях движения).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от vyv

2 vyv:

Я сократил количество ворнингов до 5ти, с происхождением которых надо ещё поигратся.
Все сообщения типа «assignment makes pointer from integer without a cast» исчезли.
Так что можно попробывать скомпилировать/запустить ещё раз, если не лень.

Спасибо.

blinkenlichten
() автор топика
Ответ на: комментарий от tensai_cirno

> Вопрос один - чем обусловлен выбор openmotif? Не срача ради, интересно.

Стабильная, качественная библиотека, знает о ресурсах.

Evgueni ★★★★★
()
Ответ на: комментарий от RedPossum

как то не следил, заработал и хорошо

ip ★★★★
()

bug FIX

Теперь должно работать, добравшись до ноутбука товарища с ранее упомянотой видеокартой i845, закомментировал пару строк и всё заработало. Надеюсь что и с остальными видеокартами теперь не будет проблем.

Вот бы всегда так :-)

ссылка та же http://sourceforge.net/projects/xmgravdots/
(доступно и через svn,см. на сайте)

Спасибо (TwisteR'y за ноут, вам - за внимание) :)

blinkenlichten
() автор топика
Ответ на: комментарий от vyv

Спасибо за тестирование, vyv!

Теперь не чувствуется этакой неполноценности в сравнении с qt/gtk приложениями подобного рода, разве что красивости кнопочек ... :-)

blinkenlichten
() автор топика
Ответ на: комментарий от Eddy_Em

И все равно это будет численное решение т.е. они будут потихоньку разлетаться (или сползаться). Ценности 0, сам писал это в глубоком детстве, классе в 7. Интегрировал по Эйлеру, как выяснилось на 2 курсе :)

farafonoff ★★
()
Ответ на: комментарий от Eddy_Em

>Вообще-то, аналитического решения задачи более чем двух тел не существует.

А как же Зундман ? :)

sS ★★★★★
()
Ответ на: комментарий от sS

Во-первых, у Зундмана не общее, а частное решение. Во-вторых, бесконечный ряд хоть и сходится, но на компьютере вы его не вычислите.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Про «*частное* решение» можно поподробнее ? :)

Про медленную сходимость согласен.

PS: Кроме Рунге-Кутты высоких порядков используют ещё всякие специфические методы типа SI(Symplectic integrator), treecode (ftp://ftp.ifa.hawaii.edu/pub/barnes/treecode)

sS ★★★★★
()
Ответ на: комментарий от sS

Про «*частное* решение» можно поподробнее ? :)

Да, русская википедия ввела меня в заблуждение. Почитал английскую - ограничение на его решение действительно несущественное (начальный момент импульса системы не должен быть равен нулю) - при равенстве момента нулю задача сильно упрощается (школьный курс физики).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от farafonoff

Ну, кому что ...

У меня компьютер только на первом курсе появился(и я сразу стал Ъ[thx 2 TwisteR :) ])

blinkenlichten
() автор топика
Ответ на: комментарий от sS

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

gzip -d code_c.tar.Z

tar xvf code_c.tar


tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

blinkenlichten
() автор топика
Ответ на: комментарий от blinkenlichten

Sources for each version of the code are available in two forms:

code_*.bun -- bundled ascii file.

code_*.tar.Z -- compressed tar file.

sS ★★★★★
()
Ответ на: комментарий от blinkenlichten
> gzip -d code_c.tar.Z 
 > tar xvf code_c.tar 
 tar: Unexpected EOF in archive
 tar: Unexpected EOF in archive
 tar: Error is not recoverable: exiting now

OMG (:

ss@ACER:~/Work/treecode$ tar -xvf code_c.tar.Z
Readme
Makefile
code.h
defs.h
real.h
stdinc.h
vectmath.h
code.c
getparam.c
grav.c
io.c
load.c
util.c
sS ★★★★★
()

Такая красивая обоина и такое лажовое оформление окон.

slaka
()
Ответ на: bug FIX от blinkenlichten

Теперь должно работать, добравшись до ноутбука товарища с ранее упомянотой видеокартой i845, закомментировал пару строк и всё заработало. Надеюсь что и с остальными видеокартами теперь не будет проблем.

у меня intel и у меня не фурычит. :(

00:02.0 VGA compatible controller: Intel Corporation 82945G/GZ Integrated Graphics Controller (rev 02)

nanoo_linux
()
Ответ на: комментарий от nanoo_linux

Плохо, я попросил бы по-подробнее информацию:
делали-ли make или запускали elf что в архиве?
ну и backtrace gdb, если можно:

gdb -r XmGravDots
run
bt

Спасибо за тестирование!

blinkenlichten
() автор топика
Ответ на: комментарий от sS

Если ещё кому-то это интересно, то через дней 6(но отнюдь не раньше) постараюсь протестировать на всевозможных видеокартах[и за bug-report буду очень признателен], исправив возможные ошибки начну переход на более физически развитую модель, описанную по ссылкам, указанным выше пользователем sS.

Та модель не такая элементарная, и её, думаю, стоит визуализировать чтобы увидеть в действии, т.к. вывод в файл кучи цыферек для человека мало чего значит[если не проводя анализа пытатся там сразу что-то увидеть :) ].

P.S. на счет ссылок: у меня-таки tar.Z не распаковался, поэтому качаем и sh'им bundled-версию:

wget ftp://ftp.ifa.hawaii.edu/pub/barnes/treecode/code_c.bun
sh code_c.bun

(выдаст исходники в текущую директорию, «rm -Rf ~/» там нет, я проверял :-) )

Спасибо за внимание!

blinkenlichten
() автор топика

мотифф просто прекрасен по сравнению с верхней панелькой

ELF ★★
()
Ответ на: комментарий от blinkenlichten

Плохо, я попросил бы по-подробнее информацию:

делали-ли make или запускали elf что в архиве? ну и backtrace gdb, если можно:

На работе у меня восьмой убунту стоит, откомпилированая версия не отображает меню коректно. Прыгает и пропадает. Нельзя нажать ни одну кнопку. В убунте 4ой версии нету. делал так sudo ln -s /usr/lib/libXm.so.3 /usr/lib/libXm.so.4 В интернетах буржуйских пишут, что так должно работать.

Дома у меня 9.10. intel 945G . То что в папке запускается и работеат вроде как хорошо. Откомпилировать не получилось, хидеров каких то нету (libmotif-dev installed).

nanoo_linux
()
Ответ на: комментарий от nanoo_linux

Там в убунту была проблема с этим dev-пакетом, он не включал по-моему один очень нужный заголовочный файл (вроде xprint.h, или что-то подобное).

Без него не соберётся ничего, я в убунту бывал редко, но что-то такое припоминаю, может репозитории обновить надо и пакеты связанные с motif?

sudo ln -s /usr/lib/libXm.so.3 /usr/lib/libXm.so.4


Оно-то работать будет, но проще обновить openmotif до версии 2.3 и не ломать ссылки на библиотеки.

В openSUSE у меня установлены следующие пакеты: openmotif-2.3.1[provides: /usr/bin/mwm],
openmotif-devel-2.3.1,
openmotif-libs-2.3.1[provides /usr/lib/libXm.so.4 ],
openmotif22-libs[provides /usr/lib/libXm.so.3, для совместимости ]

blinkenlichten
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.