首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单仿真:快速前向和正常定时器

简单仿真:快速前向和正常定时器
EN

Stack Overflow用户
提问于 2012-03-16 13:37:04
回答 3查看 2.2K关注 0票数 0

简单的绘制和移动模拟使用以下内容:

一个时钟计时器。间隔:200。A运动定时器.间隔: 1ms。运动常数。值: 2。

每次运动定时器滴答滴答时,图片就会按运动常数加起来移动。(即picture.X = picture.X +运动常数)

问题是快速转发。用户可以随时对仿真进行快速转发.

我如何改变这三个值(时钟定时器,运动定时器,运动常数),使模拟速度更快,而不牺牲完整性在快速转发运行?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-16 13:39:13

如果整数倍数(1x,2x,3x,.)对于快速转发来说,您可以在计时器处理函数期间运行几次模拟函数。

我不知道你在用时钟计时器做什么,但同样的原则也适用于它所做的任何事情。

票数 2
EN

Stack Overflow用户

发布于 2012-03-16 15:56:09

你可以有一个独立于“实时”的“内部时间”。当系统以基本速度运行时,这两个时间同步增加(定时器的每一个滴答--即设置为1ms )--会使内部时间增加1ms。

当你有一个2倍的加速比乘法器,然后为每个计时器滴答增加2ms的内部时间。

接下来,您必须根据内部时间计算位置,可能需要一个类似的函数

代码语言:javascript
复制
newposition = startposition + speed * time
票数 1
EN

Stack Overflow用户

发布于 2012-03-17 16:52:55

正如汉斯所暗示的,在大多数模拟中都存在“晶粒尺寸”。然后,通过跳过时间间隔('ticks')来调度代理。但是,如果您需要更灵活和测试更好的调度,您可能需要从ABM模拟包(如Mason (for Java)或Repast (Java或C++) )借用调度程序,或者查看它们的开源调度程序类代码并转换到另一种语言。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9738273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档