避免在更新选项调用中清理画布

Avoid cleaning canvas in updateOptions call

本文关键字:调用 更新 选项      更新时间:2023-09-26

我正在一个信号绘图程序中工作,试图模拟许多示波器中可用的"持久性"功能。

我想防止dygraph画布为每个更新选项调用进行清理。取而代之的是,我的地块应该保留,直到明确要求清理。此功能将允许我检查信号是否在一定时间内保留其相位。

我尝试在updateOptions函数中使用设置为false block_redraw参数,但没有成功。

有什么想法吗?

这并不是dygraphs设计的目的。你要求它呈现其数据源的完整历史记录,而不是其数据源的当前状态。

话虽如此,以下是清除绘图画布的代码:

DygraphCanvasRenderer.prototype.clear = function() {
  this.elementContext.clearRect(0, 0, this.width, this.height);
};

因此,如果您覆盖它,它可能会执行您想要的操作:

DygraphCanvasRenderer.prototype.clear = function() {};

话虽如此,除了为您提供所需的行为外,这还可能会破坏很多事情(例如缩放和平移)。如果您访问实时随机数据演示页面并将该代码段复制到 JS 控制台中,则可以看到这一点。

祝你好运!