如何获得 paper.js 中的圆心?

How do I get the center of a circle in paper.js?

我正在尝试 paper.js 我已经转了几圈:

var circle = new Shape.Circle({
   center: [100,100],
   radius: 50,
   strokeColor: 'black',
   strokeWidth: 2
});

这画了一个圆,圆心为 [100,100](也可以是一个点:Point({x:100, y:100});),半径为 50。太棒了,这是一个圆。

如果我想得到一个圆的半径,我可以这样做:

circle.radius; // returns 50

但我不知道如何让中心重新回来。我猜的部分原因是 Shape.Circle returns 一个 Shape 对象,它没有 center 参数(documentation here),但我肯定可以得到这一点不知何故回来了。有谁知道怎么做?

使用:

circle.center[0] and circle.center[1]

因为它是一个数组

<script>

var circle = {
   center: [100,100],
   radius: 50,
   strokeColor: 'black',
   strokeWidth: 2
};

console.log(circle.center[0]);
</script>

更新: 抱歉,我没有正确阅读您的问题。 您可以使用 circle.position 来获取中心的位置。

虽然 circle 对象没有 center 属性,但如果您正确阅读文档,您会发现它确实有 bounds 属性.

在图形中,"bound" 是完全包含您的对象的矩形。所以对于一个圆,边界将是一个与圆的左、右、上、下接触的矩形。因此,边界的中心是圆的中心(注意:根据您对 "center" 的定义,这并不总是适用于所有对象)。

Paper.js 会给你:

circle.bounds.x
circle.bounds.width
circle.bounds.y
circle.bounds.height

因此 circle 的中心是:

var centerX = circle.bounds.x + circle.bounds.width/2;
var centerY = circle.bounds.y + circle.bounds.height/2;

注意:您必须自己尝试一下,因为我对 paper.js 的经验为零。我刚刚阅读了文档

由于圆圈以创建它们的位置为中心,您可以从中获取位置(作为点)以及 x 和 y 值:

var circle = new Shape.Circle({
    center: [100,100],
    radius: 50,
    strokeColor: 'black',
    strokeWidth: 2
});

console.log(circle.position.x, circle.position.y); //100 100

来自http://paperjs.org/reference/shape/#position