拉斐尔帆布内随机展示三角形

时间:2014-05-19 22:47:50

标签: javascript svg raphael

我想在一个方框内随机显示一个三角形(目前由Raphael制作)。整个三角形应始终在框内。让我们假设它是一个实验,在显示后必须尽快点击三角形。但是您可以很容易地想象出其他场景,其中只需要在一个框内显示图像。

<div id="area"></div>
var paper = Raphael("area",300,300);

任意三角形:

var triangle = paper.path("M 100,100 L 70,50 L 40, 100").attr({"fill":"green"});

关于圆圈,这变得非常容易,因为有一个函数,即具有给定x和y坐标以及半径的paper.circle()。但是对于三角形,有三个角,x和y坐标必须考虑在内。

有什么建议吗?也许是一种完全不同的方法?

小提琴:http://jsfiddle.net/6bV9A/

1 个答案:

答案 0 :(得分:0)

这可以使用三角形对象上的translate函数来完成。首先,您需要稍微改变一下您的路径,以便三角形一直位于矩形的左上角:

var triangle = paper.path("M 60,50 L 30,0 L 0, 50").attr({"fill":"green"});

接下来使用tranlsate函数随机翻译三角形:

triangle.translate(Math.random() * 240, Math.random() * 250);

这是一个小提琴:http://jsfiddle.net/6bV9A/1/