MatrixTransformer sınıfı, Matrix nesnelerinin geometrik dönüştürmelerini uygulayan statik yöntemleri içerir.
transform() yöntemi
transform()
yöntemi, aşağıdakilerden her biri için parametreler içerir:
-
sourceMatrix
—Yöntemin dönüştürdüğü girdi matrisi
-
xScale
ve
yScale
—
x
ve
y
ölçek faktörü
-
dx
ve
dy
—Piksel cinsinden
x
ve
y
çevirme miktarları
-
rotation
—Derece cinsinden dönüş miktarı
-
skew
—Yüzde olarak eğme faktörü
-
skewType
—
"right"
veya
"left"
olmak üzere eğme yönü
Döndürme değeri, sonuçta elde edilen matristir.
transform()
yöntemi, sınıfın şu statik yöntemlerini çağırır:
-
skew()
-
scale()
-
translate()
-
rotate()
Her biri, dönüştürme uygulanmış şekilde kaynak matrisi döndürür.
skew() yöntemi
skew()
yöntemi, matrisin
b
ve
c
özelliklerini ayarlayarak matrisi eğer. İsteğe bağlı bir parametre olan
unit
, eğme açısını tanımlamak için birimleri belirler ve gerekirse bu yöntem
angle
değerini radyanlara dönüştürür:
if (unit == "degrees")
{
angle = Math.PI * 2 * angle / 360;
}
if (unit == "gradients")
{
angle = Math.PI * 2 * angle / 100;
}
skewMatrix
Matrix nesnesi oluşturulur ve eğme dönüştürmesini uygulamak için ayarlanır. Başlangıçta bu aşağıdaki gibi kimlik matrisidir:
var skewMatrix:Matrix = new Matrix();
skewSide
parametresi, eğimin uygulandığı kenarı belirler. Bu
"right"
olarak ayarlanırsa, aşağıdaki kod, matrisin
b
özelliğini ayarlar:
skewMatrix.b = Math.tan(angle);
Aksi takdirde, Matrix öğesinin
c
özelliği ayarlanarak aşağıdaki gibi alt kenar eğilir:
skewMatrix.c = Math.tan(angle);
Daha sonra aşağıdaki örnekte de gösterildiği gibi iki matris bitiştirilerek, sonuçta elde edilen eğim, varolan matrise uygulanır:
sourceMatrix.concat(skewMatrix);
return sourceMatrix;
scale() yöntemi
Aşağıdaki örnekte gösterildiği gibi,
scale()
yöntemi öncelikle yüzde olarak sağlanmış bir ölçek faktörü varsa bu ölçek faktörünü ayarlar ve sonra da matris nesnesinin
scale()
yöntemini kullanır:
if (percent)
{
xScale = xScale / 100;
yScale = yScale / 100;
}
sourceMatrix.scale(xScale, yScale);
return sourceMatrix;
translate() yöntemi
translate()
yöntemi yalnızca aşağıdaki gibi, matris nesnesinin
translate()
yöntemini çağırarak
dx
ve
dy
çevirme faktörlerini uygular:
sourceMatrix.translate(dx, dy);
return sourceMatrix;
rotate() yöntemi
rotate()
yöntemi, girdi dönüşü faktörünü radyanlara dönüştürür (derece veya degrade olarak sağlanmışsa), sonra da matris nesnesinin
rotate()
yöntemini çağırır:
if (unit == "degrees")
{
angle = Math.PI * 2 * angle / 360;
}
if (unit == "gradients")
{
angle = Math.PI * 2 * angle / 100;
}
sourceMatrix.rotate(angle);
return sourceMatrix;