【发布时间】:2012-01-26 14:22:04
【问题描述】:
我正在尝试可视化通过 2d 网格移动的强化代理。我使用画布编写了一个可视化代码,每次我的代理移动时,我都会尝试更新网格。我希望看到动画,但在代理完成所有这些动作并且我看到最终状态之前,我什么也看不到。如果我使用 Google Chrome 开发者工具逐步完成,那么我可以看到各个步骤。我不认为这是我的代码运行速度太快的问题,因为每一步都需要几秒钟。
我的实现如下,函数gridWorld() 调用一次来创建一个新对象,executeAction 每次我想绘制时调用。如图所示,我用过ctx.save()和ctx.restore(),但这只是尝试解决这个问题,似乎并没有什么不同。
谢谢
var execute gridWorld = function(action) {
var canvas = document.getElementById("grid");
this.ctx = canvas.getContext("2d");
this.executeAction = function(action) {
this.ctx.save()
// ... Do reinforcement learning stuff
// For every cell in grid, do:
this.ctx.fillStyle = "rgb(244,0,0)"
this.ctx.fillRect(positionX, poisitonY, 10,10)
this.ctx.restore();
}
}
【问题讨论】:
标签: javascript html animation canvas