早教吧作业答案频道 -->其他-->
我想用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实现一系列...的网友还看了以下:
在TCA循环中,循环中间产物即不通过此循环反应产生,也不被此循环反应所销耗, 2020-06-25 …
循环小数的准确含义我们知道:1÷3=0.33循环、2÷3=0.66循环,所以3÷3=0.99循环. 2020-06-27 …
算法复杂度怎么计算的?此算法的算法复杂度是?for循环2的N次方for循环N的平方endfor循环 2020-07-23 …
关于血液循环的叙述中,错误的一项是()A.体循环与肺循环在心脏处联通在一起B.体循环和肺循环同时进 2020-07-29 …
题目具体如下:杂技演员把三个球依次竖直向上抛出,形成连续的循环,在循环中,他每抛出一球后,再过一段 2020-07-29 …
某人左手伤口感染,医生在其手臂上通过静脉输液输入药物,则药物到达伤口至少经过的循环途径是()A.体循 2020-11-04 …
某人左手伤口感染,医生在其手臂上通过静脉输液输入药物,则药物到达伤口至少经过的循环途径是()A.体循 2020-11-04 …
废弃物的循环再利用从技术上看可以分为三种形式:直接循环再利用、机械循环再利用和化学循环再利用.请你用 2020-12-25 …
下列关于血液循环的叙述中,不正确的是()A.体循环和肺循环的循环途径是不同的B.体循环和肺循环同时进 2021-01-13 …
如果把0.3(3循环)化成分数,可以这样做:设0.3(3循环)=x,两边同乘以10,得3.3(3循环 2021-01-22 …