【发布时间】:2017-08-08 17:26:32
【问题描述】:
我正在使用 Processing.js(版本 1.4.8)。
我有 5 个白点,这是我专门选择的坐标。黑点标志着草图的中心!红十字是画布外的一个元素,用于标记窗口的中心,以便我们可以与黑点进行比较并确保地图正确居中。我希望我的草图占据整个窗口。我希望能够翻译和缩放我的草图。
我使用 Processing.js 绘制函数。我正在跟踪翻译和音阶。
我希望我的缩放操作能够将地图重新定位到之前的位置。但它不起作用。
这是CodePen。
最重要的代码是来自缩放功能的代码。
var zoomIn = function() {
scale *= 2;
translateX += - centerX / scale;
translateY += - centerY / scale;
redraw();
};
var zoomOut = function() {
translateX += centerX / scale;
translateY += centerY / scale;
scale *= 0.5;
redraw();
};
可能在这里,我实际执行转换的地方:
var draw = function () {
pjs.scale(scale, scale);
pjs.translate(translateX, translateY);
drawPoints();
drawCenter();
};
我在下面向您展示我想要的示例。
1) 打开 CodePen 并使用箭头按钮进行一些翻译。
2) 放大!中心(黑点)不再位于窗口中心(红十字)...
我希望这(见下文)发生在 zoomIn 上!!!
你能帮我解决这个问题吗?
谢谢
【问题讨论】:
-
当我访问您的 CodePen 并更改窗口大小时,我注意到即使在进行任何转换之前,十字也不会停留在黑色圆圈内。
-
另外,就像我在上一个问题中所说的那样:您的代码超出了 Processing.js 的设计使用方式,因为您没有指定
draw()函数:请注意您的 @ 987654331@ 函数不是 Processing.js 正在寻找的draw()函数。您真的应该尝试我在上一个问题中概述的方法。 -
你有想过这个问题吗?
-
@KevinWorkman 我做到了,感谢您的回答。我将其标记为已接受的答案。