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

Why does konvas [object].position() work differently for a shape and a stage?

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

但是!在舞台 object 上使用 .position() 时,您似乎会得到非常奇怪的效果(与我遇到过的任何网格不同)得到一个倒置的 x 网格,因此 100、100 将保留 100px 及以上100px

我对 2d 图形的处理不多,所以我可能遗漏了一些明显的东西,但是 stage.position() 的文档说 get/set node position relative to parent 并且它继承自 Konva.Node#position 完全相同正如 shape.position() 文档中所述。是不是那个阶段没有 parent 所以它的行为不同?还是我还漏掉了什么?

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

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

node.position() 将定义 "where we need to draw a node"。

stage.position({x: 50, y: 50}); 意味着该阶段的所有节点将从 canvas 上的 {x: 50, y: 50} 位置绘制。所以整个舞台向右下方向移动 50, 50 像素。

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