javascript - 为什么 konvas [object].position() 对于形状和舞台的工作方式不同?

标签 javascript 2d konvajs

当尝试在 Konva 中定位形状时,您可以使用 .position() 函数,并且像大多数 2d 图形中一样使用坐标填充倒置的 y 网格,因此 100、100 就是正确的 100px 和下降 100 像素。

但是!当在舞台对象上使用 .position() 时,你似乎会得到非常奇怪的效果,你(与我遇到过的任何网格不同)得到一个倒置的 x 网格,这样 100, 100 将剩下 100px及以上 100 像素

我对 2d 图形的工作不多,所以我可能会遗漏一些明显的东西,但 stage.position() 的文档说获取/设置相对于父级的节点位置 code> 并且它继承自 Konva.Node#positionshape.position() 文档中所述完全相同。是不是那个阶段没有父级,所以它的行为有所不同?还是我还漏掉了其他东西?

示例展示了舞台上的定位与形状上的定位效果 https://jsfiddle.net/uvp3k6wy/

最佳答案

它们的工作原理完全相同。

node.position()将定义“我们需要在哪里绘制节点”。

stage.position({x: 50, y: 50});意味着该阶段拥有的所有节点都将从 {x: 50, y: 50} 中抽取 Canvas 上的位置。所以整个舞台被移动了50, 50 px 到右下方向。

如果{x: 0, y: 0}中有一个红色圆圈,它将有一个绝对位置 {x: 50, y: 50}因为它移动了我的舞台位置。

关于javascript - 为什么 konvas [object].position() 对于形状和舞台的工作方式不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57768809/

相关文章:

javascript - Yii 如何要求用户在 CStarRating 中确认他的选择

javascript - js-cookie 库适用于 Android 但不适用于 iOS 设备

javascript - 等待异步函数并 promise 完成

java - 这是使用 Java 2D 图形 API 的正确方法吗?

javascript - 如何对数百个 Canvas 圆进行高性能重叠/碰撞检测?

javascript - 在 HTML5 Canvas 上动画绘制路径

javascript - 当元素滚动到 View 中时,jQuery Waypoints 添加类

java - Libgdx Spritebatch 错误

java - Android 与像素的关系。我的 2D 瓷砖 map 遇到了严重的问题?

javascript - 在鼠标进入和离开 Canvas 形状时添加和删除类