首页 > 解决方案 > 为什么 konvas [object].position() 对形状和舞台的工作方式不同?

问题描述

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

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

我对 2d 图形的工作并不多,所以我可能会遗漏一些明显的东西,但文档stage.position()说它是从与文档中所说的完全相同get/set node position relative to parent的继承而来 的。是不是那个阶段没有父母所以它的行为不同?还是我错过了其他东西?Konva.Node#positionshape.position()

展示定位在舞台上与形状如何工作的示例 https://jsfiddle.net/uvp3k6wy/

标签: javascript2dkonvajs

解决方案


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

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

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

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


推荐阅读