6

我无法使用 raphael.js 绘制简单的网格。

我正在使用 paper.path(),我的路径字符串看起来一切都很好:
在此处输入图像描述

但不知何故,这会被渲染:
在此处输入图像描述

这是我用来渲染这个“网格”的代码

    // vertical lines
    for(var x = (this._offset.x % cellSize); x < this.width; x += cellSize){
        var vpath = "M " + x + " 0 l " + x + " " + this.height + " z";
        var vline = paper.path(vpath);
    }
    // horizontal lines
    for(var y = (this._offset.y % cellSize); y < this.height; y += cellSize){
        var hpath = "M 0 " + y + " l " + this.width + " " + y + " z";
        var hline = paper.path(hpath);
    }

(在这种情况下 cellSize = 50,并且 this._offset = {x:0, y:0})

4

1 回答 1

7

问题是您假设l采用绝对坐标,但它实际上采用相对坐标。当你写:

M 50 0 l 50 600

您认为这意味着从 (50,0) 到 (50, 600) 写一行,但实际上意味着从 (50, 0) 开始,移动 (50, 600)。因此,倾斜的网格。

您只需要像这样编写 vpath(将l后的xy替换为0):

var vpath = "M " + x + " 0 l 0 " + this.height + " z";

和:

var hpath = "M 0 " + y + " l " + this.width + " 0 z";
于 2012-04-23T03:24:04.610 回答