早教吧作业答案频道 -->其他-->
我想用opengl实现一系列椭圆从上向下随机位置下落请问循环方面,即第一个椭圆下落了怎样才能让下一个椭圆接着下落
题目详情
我想用opengl实现一系列椭圆从上向下随机位置下落
请问循环方面,即第一个椭圆下落了怎样才能让下一个椭圆接着下落
请问循环方面,即第一个椭圆下落了怎样才能让下一个椭圆接着下落
▼优质解答
答案和解析
OpenGL代码实现起来没有普通java/c++那么快,这里给出一个参考思路,你最好自己动手实践.
先回答你的问题.
下落的顺序,也就是你所说的一个接着一个问题,可以通过在每一次移动的过程中,判断前一个椭圆是否开始下落(第一次下落的回调函数bool量控制)来控制或者是否到达边缘(y>= ScreenHeight)来控制,如果前一个椭圆满足条件的话就产生新的椭圆从新的位置随机下落即可.这个取决于你的逻辑需要.
另外,根据你所描述的问题,决定随机下落程序的因素还包括初始位置、时间、下落速度(大小和方向).
1)初始位置的计算是一个关于屏幕宽度和高度的一个随机函数产生;
2)时间可以通过你使用的库如GLFW库或者FreeGLUT(例如glutGet(GLUT_ELAPSED_TIME))中有 相应函数;或者使用定时器函数,例如FreeGLUT中的glutTimerFunc来根据时间移动椭圆;
3)下落的速度大小和方向,你可以使用固定值(例如全局指定),也可以根据时间动态改变.
先回答你的问题.
下落的顺序,也就是你所说的一个接着一个问题,可以通过在每一次移动的过程中,判断前一个椭圆是否开始下落(第一次下落的回调函数bool量控制)来控制或者是否到达边缘(y>= ScreenHeight)来控制,如果前一个椭圆满足条件的话就产生新的椭圆从新的位置随机下落即可.这个取决于你的逻辑需要.
另外,根据你所描述的问题,决定随机下落程序的因素还包括初始位置、时间、下落速度(大小和方向).
1)初始位置的计算是一个关于屏幕宽度和高度的一个随机函数产生;
2)时间可以通过你使用的库如GLFW库或者FreeGLUT(例如glutGet(GLUT_ELAPSED_TIME))中有 相应函数;或者使用定时器函数,例如FreeGLUT中的glutTimerFunc来根据时间移动椭圆;
3)下落的速度大小和方向,你可以使用固定值(例如全局指定),也可以根据时间动态改变.
看了 我想用opengl实现一系列...的网友还看了以下:
12.在平面直角坐标系xOy中,椭圆C的标准方程为x2/a2+y2/b2=1(a>b>0),右焦点 2020-05-12 …
椭圆双曲线长短半轴和焦距的关系问下椭圆和双曲线中a,b,c的关系! 2020-05-16 …
圆,椭圆,双曲线,抛物线有什么内在联系?圆,椭圆,双曲线,抛物线都涉及到了焦点,离心率,定点到定直 2020-05-20 …
活塞径向呈椭圆形,椭圆的长轴与活塞销轴线同向。 ( ) 2020-06-07 …
隧道环向纵向是哪两个方向?我从隧道洞口向里看前进方向是?椭圆一圈是? 2020-06-22 …
如图,在平面直角坐标系xoy中,椭圆x^2/a^2+y^2/b^2=1(a>b>0)的离心率为1/ 2020-06-30 …
判断一点P(x,y)与椭圆的关系,是在椭圆上,椭圆内还是椭圆外?已知椭圆的外接矩形的两顶点P1(x 2020-06-30 …
如图,在平面直角坐标系中,椭圆的右焦点为,离心率为.分别过,的两条弦,相交于点(异于,两点),且. 2020-07-20 …
在平面直角坐标系xoy中,椭圆x^2/a^2+y^2/b^2=1(a>b>0)的左焦点为F,右顶点 2020-07-31 …
如图,在平面直角坐标系xoy中,椭圆x²/a²+y²/b²=1(a>b>0)的右焦点为F(1,0) 2020-08-01 …