拉斐尔:继承的转变

时间:2013-08-23 23:38:15

标签: raphael

基于另一个帖子(Raphaeljs transformations with sets) 我已经使用集合中的集合来处理继承的转换。

我试图将一组放在另一组中,每组都会应用45°旋转。我预计,两个旋转总计会旋转90°。这很好。

但是两个旋转都相对于Set中每个单个Object的中心点。我怎样才能实现旋转相对于Set的中心点?这可能吗?

澄清我的意思。如果我在一组中有两个矩形并且我在该组上应用旋转,我希望矩形将保持相对于它们的相同位置和角度,因为它们都围绕它们之间的轴旋转,在中间集合。所以他们必须另外转换为轮换......

我怎样才能做到这一点?

的jsfiddle:http://jsfiddle.net/bBy9b/

var paper = Raphael(0,0,500,500);    

var a = paper.rect(10,10,50,10);
var b = paper.rect(10,30,50,10)
var c = paper.rect(10,50,50,10);
var d = paper.rect(10,70,50,10);

var set = paper.set()

set.push(a);

set.transform("r-45");

var rootSet = paper.set();
rootSet.push(set, b, c);

rootSet.transform("...r-45");

Thx提前帮助你!

1 个答案:

答案 0 :(得分:1)

r命令采用两个额外的可选参数,这些参数是旋转的中心点。所以看起来你想要这样的东西:

window.onload = function(){
    var paper = Raphael(0,0,500,500);    

    var a = paper.rect(10,10,50,10);
    var b = paper.rect(10,30,50,10)
    var c = paper.rect(10,50,50,10);
    var d = paper.rect(10,70,50,10);

    var set = paper.set()

    set.push(a);

    set.transform("...r-45,40,45");

    var rootSet = paper.set();
    rootSet.push(set, b, c);

    rootSet.transform("...r-45,40,45");
}