本文主要是介绍C语言SDL库简单界面开发(Linux)-天体运动,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
半路被拉过来给人调程序,通过多线程,模拟行星围绕太阳公转,时间仓促,最后简单实使用了万有引力公式,实现了一个天体围绕恒星旋转的界面。
功能说明
要求使用C 语言实现一个模拟行星围绕太阳公转的界面,进阶要求是通过多线程,加快程序在运行过程中计算所耗费的时间。
编译执行
编译:gcc *.c -o nbodygui -fsanitize=address -g -lSDL2 -lSDL2_gfx -lm -lpthread
执行:
1)./nbodygui 800 600 2000 0.1 -f planets.csv 0.0025 4
设置窗口为800 X 600,循环执行2000次,时间变化速率0.1,-f是代表从下一个参数指定的文件planets.csv中读取数据,窗口缩放比例0.0025(忽略),线程数目为4。
2)./nbodygui 800 600 2000 1 -b 10 0.0025 4
设置窗口为800 X 600,循环执行2000次,时间变化速率0.1,-b是代表自动产生数据,下一个参数表示数据的个数,窗口缩放比例0.0025(忽略),线程数目为4。
常见错误
fatal error: SDL/SDL.h: No such file or directory
原因是SDL库没有安装,根据你使用的是SDL1还是SDL2来进行不同的安装,如下所示:
SDL2:sudo apt-get install libsdl2-dev
SDL1:sudo apt-get install libsdl1.2-dev
fatal error: SDL2/SDL2_gfxPrimitives.h: No such file or directory
同样是没有库文件,下载更新即可:
SDL2:sudo install libsdl2-gfx-dev
运行效果
工程链接
https://github.com/Wqhong/SDL2_mutithread
这篇关于C语言SDL库简单界面开发(Linux)-天体运动的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!