拉斐尔更具体的形状(如菱形)

时间:2012-02-26 20:44:52

标签: raphael

有没有简单的方法可以在中创建像菱形一样的形状?我想没有像以下那样的命令:

var paper = new Raphael(document.getElementById('canvas_container'), 600, 600);
var rhombus = paper.rhombus(...);

也许有比绘制路径更简单的方法。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

拉斐尔没有像paper.rhombus那样的东西。但你可以自由地扩展拉斐尔,这样你就可以得到菱形方法了。正如你所问的那样。

我创建了小fiddle来绘制菱形,就像你想要的那样。

来自小提琴的示例代码。

    r.rhombus({
        cx:300,
        cy:300,
        side:15
    });

    // a rhombus rotated around its center.
    r.rhombus({
        cx:600,
        cy:300,
        side:15,
        angle:45
    }).attr({
        'stroke-width' :2
    })

变量说明:

cx - center x position
cy - center y position,
side - length of side of the rhombus.
angle - the angle through which the rhombus will be around its center (cx,cy)

了解了很多关于菱形的知识: - )

答案 1 :(得分:1)

我发现使用角度很麻烦,因为它还会旋转此对象的坐标系。例如,当它稍后向右翻译时,它将对角线移动到东南方向。 我使用菱形路径,代码很短:

this.rhombus = this.paper.path("M 100 100 l30 -30 l30 30 l-30 30 l-30 -30");

M:将“笔”移动到这些坐标 l:画一条线到相对于这里的一个点,所以30向右,30向上 等等。