我知道如何在Raphael中绘制一个简单的矩形,并且了解其所有参数的含义。例如,这些参数给出一个漂亮的矩形,其宽度等于201,高度等于179

 M0,0 L0,179 L210,179 L210,0 L0,0Z


但是我不想要一个简单的矩形,我想要一个看起来像这样的文档流程图

javascript - Raphael中的文档流程图-LMLPHP

我从here知道,在Raphael中,我可以绘制曲线,例如使用以下参数:

M150,150 A100,70 0 0,0 250,220


但是不幸的是,这本书没有解释这些参数的含义。我知道M的意思,但是我不知道A的意思以及以下所有坐标。

那么,如何确定我的初始矩形坐标以获得文档流程图呢?

最佳答案

您缺少的部分是SVG Path Spec

您的初始矩形:

M0,0 L0,179 L210,179 L210,0 L0,0Z


...读为“转到0,0,然后将线绘制为0,179,然后将线绘制为210,179,然后将线绘制为210,0,然后将线绘制为0,0,然后返回起点。 ” (最后一部分Z有点多余,因为我们已经关闭了路径。)

您想要用弧线替换第二行-从0,179到210,179。我不是设计师,但我想吐出一个Quadratic Bezier Curve可以解决问题:

M0,0 L0,179 Q53,159 105,179 T210,179 L210,0 L0,0Z


这就是说,从Q开始,“以53,159作为控制点,从起点[0,179]到105,179绘制二次Bezier曲线。然后使用最后一个控制点的反射从105,179到210,179绘制另一个Bezier曲线。”我尚未测试此路径,因此您可能需要调整控制点以获得所需的曲线。 (增加控制点和179之间的y距离将使曲线更加生动;减小控制点将使曲线更加柔和。)

Raphael documentation解释了有关在Raphael中使用路径的更多信息。

10-06 00:24