【发布时间】:2015-01-27 21:42:11
【问题描述】:
我有一个尺寸为 1024x768 的画布元素,我在其中绘制了一个非常大的图像,假设宽度 >> 1024 和高度 >> 768。可以使用普通滚动条滚动图像以完全看到。
用户可以在画布上单击以将顶点添加到多边形:每次添加顶点时,都会绘制一条从新顶点到鼠标光标的线。 每次鼠标移动到画布上都会更新画布,以便将这条线从顶点重新绘制到新的鼠标光标位置。
由于图像非常大,重绘非常慢,所以我只想重绘当前可见的图像块,或者更好的是,受这条线影响的“子块”。
问题是:如何根据用户滚动图片的多少来检测当前上下文可见部分的topLeft和bottomRight?基本上我想添加对自定义视口的支持,但我似乎无法利用 scolling 信息来确定要从原始图像裁剪的块的 boundingBox。
【问题讨论】:
-
你能重画两点之间的区域吗?听起来这个区域会小于可见区域,并且您已经知道这些坐标。
-
那张图片有多大?以及如何使用普通滚动条滚动画布内容?
-
是的,我确实可以这样做,这将是最简单的方法。 :) 问题是我实际上可能需要一个视口以供将来使用(你永远不知道),但似乎所有其他视口问题都与游戏有关,所以我找不到关于简单滚动条的问题。
-
@Shomz 它接近 5000x5000,我实际上有一个 canvasDiv 容器,它是真正的可滚动元素,而不是画布本身。抱歉我的解释不清楚。
-
我明白了,在那种情况下,我想我可以帮助您...在游戏中处理更大的文件,并获得了 60FPS...会写给您答案。
标签: javascript jquery css html canvas