Используя Raphel.js 2.0 , вы можете сделать это, используя метод .transform () и предоставляя строку преобразования, которая поворачивается на 45 градусов и масштабируется по вертикали на 70% (или любой желаемой высоты звука).Важно обратить внимание на положение, которое вы вращаете и масштабируете вокруг - в этом случае я использую 0,0.Вы также заметите, что я перевожу 100 вправо для компенсации вращения.
Строки преобразования также отлично подходят для этого варианта использования, потому что вы можете просто добавить преобразование проекции к преобразованию других объектов всцена, и все они окажутся в нужном месте.
Например (см. http://jsfiddle.net/k22yG/):
var paper = Raphael(10, 10, 320, 240),
set = paper.set();
// Build a set to make it easier to transform them all at once
set.push(
// Grid of rectangles
paper.rect(0, 0, 50, 50),
paper.rect(60, 0, 50, 50),
paper.rect(0, 60, 50, 50),
paper.rect(60, 60, 50, 50)
);
// Rotate, then scale, then move (describe in "reverse" order)
set.transform('t100,0s1,0.7,0,0r45,0,0');