javascript - 为什么 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#position
shape.position()
展示定位在舞台上与形状如何工作的示例 https://jsfiddle.net/uvp3k6wy/
解决方案
它们的工作原理完全相同。
将node.position()
定义“我们需要在哪里绘制节点”。
stage.position({x: 50, y: 50});
意味着该阶段的所有节点都将从{x: 50, y: 50}
画布上的位置绘制。所以整个舞台被50, 50
px 移动到右下方向。
如果你有一个红色圆圈{x: 0, y: 0}
,它将有一个绝对位置{x: 50, y: 50}
,因为它移动了我的舞台位置。