太阳运动(Y/Z运动)
Sun Movement (Y/Z movement)
我想知道在y和z轴上模拟日出/日落的最佳方式。目前,它做了我想做的事,但移动得太快了(比如说,每3秒它就已经完成了整个太阳路径,并且已经反向移动回原点)。
我知道这与秒变量与sin和cos的组合有关,因为这个函数被称为,它每帧都会移动灯光的位置。基本上,我希望它能链接到我的游戏计时器50:
- 50秒日出了
- 25秒现在是中午
- 0秒日落/比赛结束
目前我有:
lightPosition = Point_E3d(0,
std::abs(100 *std::cos(seconds)),
-100 * std::sin(seconds));
想知道什么是正确的代码格式才能达到这种效果。
这只是一个简单的三角法。正弦(x*n)和余弦(x*n)的周期(直到函数重复的时间)均为2*pi/n。在这种情况下,n=1,因此周期为6.28,这意味着一整天(和一晚上)将持续6.28秒。如果要增加句点,请将seconds
参数乘以一个小于1的数字。一点点代数表明:
period of sin(x * n) = 2*pi / n
period of sin(.1256 * x) = 2*pi / .1256 = 6.28 / 0.1256 = 50
因此,取秒的正弦和余弦*0.1256,而不仅仅是秒。
lightPosition = Point_E3d(0,
std::abs(100 *std::cos(seconds * 0.1256 )),
-100 * std::sin(seconds * 0.1256));
请注意,这也包括夜间时间。如果你只想让一天12小时的时间持续50秒,乘以0.1256的一半,也就是0.0628。
相关文章:
- 粒子系统:所有粒子都朝同一方向运动
- 如何组合许多连续的图像来模拟逼真的运动模糊?
- 太空入侵者 – 2D 矢量运动算法
- 在虚幻引擎中使用运动控制器组件,C++而不是蓝图
- OpenCV的卡尔曼滤波器过渡矩阵如何处理时间(如t和t^2)进行运动预测?
- 如何使用OpenCV作为运动检测器(而不是寻找视频输出)
- 一维阵列的运动检测(神经网络或其他选项?
- 使用带有 PIR 传感器的米利斯检测连续运动
- 在 GTKMM 中捕捉鼠标运动
- C++编译错误是由于使用 std::move 时运动构造函数与其他非运动构造函数之间的冲突
- 在何处更改参考代码以从 HEVC 编码的视频中提取运动矢量
- C++ SFML 精灵运动无法按预期工作
- 编码域中的DCT系数和运动矢量提取
- 视觉C SDL2圆形运动
- setCursor()有时在鼠标快速运动中失败
- 用C++睡眠特定的鼠标运动
- SDL 乒乓球运动错误
- SFML意外的SF ::顶点运动
- 地牢爬网游戏,运动机械问题
- 太阳运动(Y/Z运动)