HTML5 Canvas线条图

时间:2011-12-23 16:36:21

标签: javascript html5 canvas

我正在研究一个将变量设置为随机数的程序,然后在画布上创建一条线,每次y坐标都不同。 在程序中,一个按钮生成一个凹凸不平的线,另一个按钮使用一些代码,使线条更平滑。

现在,我正在努力填补随机生成的线下面的空间,使它像一座小山,但我遇到了一些问题。

在“text / javascript”区域中,我定义了画布及其坐标,以及所有随机y值变量(但它们尚未使用)。如果单击“颠簸”按钮,它将运行一个函数,将y坐标变量设置为画布内的任何内容,然后绘制线条。如果单击“平滑”按钮,代码将随机设置第一个y坐标变量,然后将下一个变量设置为稍微大一点或稍微小于前一个点的坐标,然后绘制线。 第三个按钮称为“填充”。此按钮运行另一个功能,该功能检查是否已绘制了一个小山,并开始使用所有y坐标值+10绘制另一条线。 (换句话说,在原始线的正下方绘制一条线。)我的计划是按钮将这样的线一直画到画布的底部,从而填充线下方的空间。 这就是它变得奇怪的地方,我认为问题是“填充”按钮使用在其他函数中创建的信息(存储在变量中)。

我该怎么办?

提前致谢。

1 个答案:

答案 0 :(得分:1)

你只想以你喜欢的方式创建整个路径,但不要打扰调用ctx.stroke()or ctx.fill(),然后再添加两个线段:一个在右下角,然后一个到左下角。

那么你刚刚画了三个方面。顶部,右侧和底部。顶部实际上是一大堆线段(或曲线),但无关紧要,这个想法是一样的。然后你拨打ctx.fill()并填写该框。

(因为你刚刚填写,所以你不必画左侧。如果你​​正在抚摸你,你首先想要调用ctx.close())

所以你在结尾处调用一次ctx.fill()并填充整个底部空间

以下是一个实例:http://jsfiddle.net/wKVRR/