Paket | flash.geom |
Sınıf | public class Matrix3D |
Miras Alma | Matrix3D ![]() |
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Tek bir matris birden çok dönüştürmeyi birleştirip bir defada 3B görüntüleme nesnesine uygulayabilir. Örneğin, bir döndürme ve ardından çevirme gerçekleştirmek için üç boyutlu koordinatlara bir matris uygulanabilir.
Bir görüntüleme nesnesinin z
özelliğini veya herhangi bir döndürme veya ölçekleme özelliğini açıkça ayarladığınızda, karşılık gelen bir Matrix3D nesnesi otomatik olarak oluşturulur.
3B görüntüleme nesnesinin Matrix3D nesnesine transform.matrix3d
özelliği üzerinden erişebilirsiniz. 2B nesneler Matrix3D nesnesine sahip değildir.
2B nesnenin z
özelliğinin değeri sıfır ve matrix3D
özelliğinin değeri null
şeklindedir.
Not: İki farklı görüntüleme nesnesine aynı Matrix3D nesnesi atanırsa, bir çalışma zamanı hatası atılır.
Matrix3D sınıfı, dört adet satır ve sütundan oluşan ve dönüştürmenin verilerini tutan bir tablo niteliğindeki 4x4 kare matrisini kullanır. Matrisin ilk üç satırında her 3B eksenin (x,y,z) verileri tutulur. Çevirme bilgileri son sütunda bulunur. Yönlendirme ve ölçekleme verileri ilk üç sütunda yer alır. Ölçekleme faktörleri, ilk üç sütundaki diyagonal sayılardır. Matrix3D öğelerinin bir temsili şu şekildedir:
Matrix3D sınıfını kullanmak için matris matematiğini anlamanız gerekmez. Bu sınıf, dönüştürme ve projeksiyon görevini basitleştiren appendTranslation()
, appendRotation()
veya interpolateTo()
gibi belirli yöntemleri sunar. Temel matris öğelerine erişmek için, decompose()
ve recompose()
yöntemlerini veya rawData
özelliğini de kullanabilirsiniz.
Görüntüleme nesneleri, her eksen için ayrı döndürme içermek ve farklı döndürme kombinasyonlarını yönetmek üzere axis rotation özelliklerini önbelleğe alır. Görüntüleme nesnesini dönüştürmek için Matrix3D nesnesinin bir yöntemi çağrıldığında, görüntüleme nesnesinin döndürme önbelleği geçersiz kılınır.
İlgili API Öğeleri
flash.geom.Transform
flash.geom.PerspectiveProjection
flash.geom.Vector3D
flash.geom.Orientation3D
flash.geom.Utils3D
flash.geom.Matrix
Özellik | Tanımlayan: | ||
---|---|---|---|
![]() | constructor : Object
Belirli bir nesne örneği için sınıf nesnesine veya yapıcı işlevine bir başvuru. | Object | |
determinant : Number [salt okunur]
Bir matrisin ters çevrilebilir olup olmadığını belirleyen bir Number öğesi. | Matrix3D | ||
position : Vector3D
Dönüştürmenin başvuru karesinde bir görüntüleme nesnesinin konumunu ve 3B koordinatını (x,y,z) tutan bir Vector3D nesnesi. | Matrix3D | ||
rawData : Vector.<Number>
Her dört öğenin 4x4 matrisinin bir sütun niteliğinde olduğu 16 Numaralı bir Vektör. | Matrix3D |
Yöntem | Tanımlayan: | ||
---|---|---|---|
Matrix3D nesnesi oluşturur. | Matrix3D | ||
Geçerli Matrix3D nesnesiyle başka bir Matrix3D nesnesini çarparak matrisi sona ekler. | Matrix3D | ||
Matrix3D nesnesinin sonuna artışlı bir dönüş ekler. | Matrix3D | ||
Matrix3D nesnesinin sonuna x, y ve z eksenleri boyunca artışlı bir ölçek değişikliği ekler. | Matrix3D | ||
Matrix3D nesnesinin sonuna artışlı bir çevirme ve x, y ve z eksenleri boyunca yeniden konumlandırma ekler. | Matrix3D | ||
Geçerli Matrix3D nesnesinin tam kopyası olan yeni bir Matrix3D nesnesi döndürür. | Matrix3D | ||
Çağrı yapan Matrix3D nesnesinin belirli sütununa bir Vector3D nesnesi kopyalar. | Matrix3D | ||
Çağrı yapan Matrix3D nesnesinin belirli sütununu Vector3D nesnesine kopyalar | Matrix3D | ||
Kaynak Matrix3D nesnesindeki tüm matris verilerini çağrı yapan Matrix3D nesnesine kopyalar. | Matrix3D | ||
Kaynak vector nesnesindeki tüm vektör verilerini çağrı yapan Matrix3D nesnesine kopyalar. | Matrix3D | ||
Çağrı yapan Matrix3D nesnesindeki tüm matris verisini sağlanan vektöre kopyalar. | Matrix3D | ||
Çağrı yapan Matrix3D nesnesinin belirli satırına bir Vector3D nesnesi kopyalar. | Matrix3D | ||
Çağrı yapan Matrix3D nesnesinin belirli satırını Vector3D nesnesine kopyalar. | Matrix3D | ||
Matrix3D | |||
Dönüştürme matrisinin çevirme, dönüş ve ölçek ayarlarını üç Vector3D nesnesinden oluşan bir Vector olarak döndürür. | Matrix3D | ||
Vector3D nesnesini bir alan koordinatından diğerine dönüştürmek için çevirme öğeleri olmadan dönüştürme matrisini kullanır. | Matrix3D | ||
![]() |
Bir nesnenin belirli bir özelliğinin tanımlı olup olmadığını gösterir. | Object | |
Geçerli matrisi bir kimlik veya birim matrisine dönüştürür. | Matrix3D | ||
[statik]
Bir matrisin çevirisini, dönüşünü ve ölçek dönüşümlerini hedef matrisin aynı öğelerine ekler. | Matrix3D | ||
Bu matrisi hedef matrisin çevirisine, dönüşüne ve ölçek dönüşümlerine ekler. | Matrix3D | ||
Geçerli matrisi ters çevirir. | Matrix3D | ||
![]() |
Object sınıfının bir örneğinin parametre olarak belirtilen nesnenin prototip zincirinde olup olmadığını gösterir. | Object | |
Görüntüleme nesnesini belirtilen bir konuma bakacak şekilde döndürür. | Matrix3D | ||
Geçerli Matrix3D nesnesini başka bir Matrix3D nesnesiyle çarparak bir matrisi başa ekler. | Matrix3D | ||
Matrix3D nesnesinin başına artışlı bir dönüş ekler. | Matrix3D | ||
Matrix3D nesnesinin başına x, y ve z eksenleri boyunca artışlı bir ölçek değişikliği ekler. | Matrix3D | ||
Matrix3D nesnesinin başına artışlı bir çevirme ve x, y ve z eksenleri boyunca yeniden konumlandırma ekler. | Matrix3D | ||
![]() |
Belirtilen özelliğin bulunup bulunmadığını ve numaralandırılabilir olup olmadığını gösterir. | Object | |
Dönüştürme matrisinin çevirme, döndürme ve ölçek ayarlarını yapar. | Matrix3D | ||
![]() |
Dinamik bir özelliğin döngü işlemlerinde kullanılabilirliğini ayarlar. | Object | |
![]() |
Bu nesnenin, yerel ayara özel kurallara göre biçimlendirilmiş dize temsilini döndürür. | Object | |
![]() |
Belirtilen nesnenin dize olarak temsil edilen halini döndürür. | Object | |
Vector3D nesnesini bir alan koordinatından diğerine dönüştürmek için dönüştürme matrisini kullanır. | Matrix3D | ||
Numbers öğelerinden oluşan bir Vector öğesini bir koordinat alanından diğerine dönüştürmek için dönüştürme matrisini kullanır. | Matrix3D | ||
Geçerli Matrix3D nesnesini satır ve sütunların değiştirildiği bir matrise dönüştürür. | Matrix3D | ||
![]() |
Belirtilen nesnenin temel değerini döndürür. | Object |
determinant | özellik |
determinant:Number
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Bir matrisin ters çevrilebilir olup olmadığını belirleyen bir Number öğesi.
Matrix3D nesnesinin ters çevrilebilir olması gerekir. Matrix3D nesnesinin ters çevrilebilir olduğundan emin olmak için determinant
özelliğini kullanabilirsiniz. determinant sıfır olursa, matrisin tersi bulunmaz. Örneğin, bir matrisin satır veya sütununun tamamı sıfır olursa ya da iki satır veya sütun eşitse, determinant sıfır olur. Bir eşitlik serisini çözmek için de determinant kullanılır.
Yalnızca Matrix3D sınıfı gibi bir kare matrisi determinanta sahiptir.
Uygulama
public function get determinant():Number
İlgili API Öğeleri
position | özellik |
position:Vector3D
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Dönüştürmenin başvuru karesinde bir görüntüleme nesnesinin konumunu ve 3B koordinatını (x,y,z) tutan bir Vector3D nesnesi. position
özelliği, matrisin parçalanmasına ve yeniden oluşturulmasına gerek kalmadan görüntüleme nesnesi matrisinin çevirme vektörüne anında erişilmesini sağlar.
position
özelliğiyle, dönüştürme matrisinin çevirme öğelerini alabilir ve ayarlayabilirsiniz.
Uygulama
public function get position():Vector3D
public function set position(value:Vector3D):void
İlgili API Öğeleri
rawData | özellik |
rawData:Vector.<Number>
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Her dört öğenin 4x4 matrisinin bir sütun niteliğinde olduğu 16 Numaralı bir Vektör.
rawData
özelliği, ters çevrilemez bir matrise ayarlanırsa bir istisna atılır. Matrix3D nesnesinin ters çevrilebilir olması gerekir. Ters çevrilemez matris gerekiyorsa, Matrix3D nesnesinin bir alt sınıfını oluşturun.
Uygulama
public function get rawData():Vector.<Number>
public function set rawData(value:Vector.<Number>):void
İlgili API Öğeleri
Matrix3D | () | Yapıcı |
public function Matrix3D(v:Vector.<Number> = null)
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Matrix3D nesnesi oluşturur. Matrix3D nesneleri, her dört öğenin bir sütun niteliğinde olduğu 16 Numaralı bir Vektör ile başlatılabilir. Matrix3D nesnesi oluşturulduktan sonra, rawData
özelliğiyle bunun matris öğelerine erişebilirsiniz.
Bir parametre tanımlı değilse, yapıcı bir kimlik veya unit Matrix3D nesnesi oluşturur. Matris notasyonunda, kimlik matrisi, ana diyagonal konumdaki tüm öğeler için bir değerine ve diğer tüm öğeler için sıfır değerine sahiptir. Bir kimlik matrisinin rawData
özelliği şu şekildedir: 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1
. Kimlik matrisinin konumu veya çevirme değeri şu şekildedir: Vector3D(0,0,0)
, döndürme ayarı şu şekildedir: Vector3D(0,0,0)
ve ölçek değeri de şu şekildedir: Vector3D(1,1,1)
.
v:Vector.<Number> (default = null ) — Her dört öğenin 4x4 matrisinin bir sütun niteliğinde olduğu 16 Numaralı bir Vektör.
|
İlgili API Öğeleri
append | () | yöntem |
public function append(lhs:Matrix3D):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Geçerli Matrix3D nesnesiyle başka bir Matrix3D nesnesini çarparak matrisi sona ekler. Sonuç, iki matris dönüştürmesini birleştirir. Bir Matrix3D nesnesini birçok matrisle çarpabilirsiniz. Son Matrix3D nesnesi tüm dönüştürmelerin sonucunu içerir.
Matris çarpma işlemi, matris toplama işleminden farklıdır. Matris çarpma işlemi komütatif değildir. Başka bir deyişle, A çarpı B, B çarpı A'ya eşit değildir. append()
yönteminde çarpma işlemi soldan başlar, böylece lhs
Matrix3D nesnesi, çarpma operatörünün sol tarafındadır.
thisMatrix = lhs * thisMatrix;
append()
yöntemi ilk çağrıldığında, değiştirme işlemini üst öğe alanına göre yapar. Sonraki çağrılar, sona eklenen Matrix3D nesnesinin başvuru karesine göredir.
append()
yöntemi, kaynak matrisi sona eklenen matrisle değiştirir. Geçerli matrisi değiştirmeden iki matrisi sona eklemek isterseniz, ilk olarak clone()
yöntemini kullanarak geçerli matrisi kopyalayın ve sonra kopyaya append()
yöntemini uygulayın.
Parametreler
lhs:Matrix3D — Geçerli Matrix3D nesnesiyle çarpılan sol matris.
|
İlgili API Öğeleri
appendRotation | () | yöntem |
public function appendRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Matrix3D nesnesinin sonuna artışlı bir dönüş ekler. Görüntüleme nesnesine Matrix3D nesnesi uygulandığında, matris, Matrix3D nesnesindeki diğer dönüştürmeden sonra döndürme işlemini gerçekleştirir.
Görüntüleme nesnesinin dönüşü, bir eksen, eksen etrafındaki dönüşün artış derecesi ve nesne dönüşünün merkezi için isteğe bağlı bir pivot noktası tarafından tanımlanır. Eksen herhangi bir genel yön olabilir. Ortak eksenler, X_AXIS
(Vector3D(1,0,0)
), Y_AXIS
(Vector3D(0,1,0)
) ve Z_AXIS
(Vector3D(0,0,1)
) şeklindedir. Havacılık terminolojisinde, y ekseni etrafındaki dönüşe rotadan sapma denir. x ekseni etrafındaki dönüşe yunuslama denir. z ekseni etrafındaki dönüşe tono denir.
Dönüştürmenin sırası önemlidir. Ardından çevirme dönüştürmesi gelen bir dönüş, ardından dönüş dönüştürmesi gelen bir çevirmeden farklı bir etki oluşturur.
Dönüş etkisi mutlak değildir. Bu etki, geçerli konuma ve yönlendirmeye göredir. Dönüştürme matrisine mutlak bir değişiklik uygulamak için recompose()
yöntemini kullanın. appendRotation()
yöntemi, görüntüleme nesnesinin rotationX
özelliği gibi axis rotation özelliğinden de farklıdır. appendRotation()
yöntemi matriste bulunanlara göre gerçekleştirilirken, rotation özelliği her zaman çevirmelerden önce gerçekleştirilir. Görüntüleme nesnesinin axis rotation özelliğine benzer bir etki elde ettiğinizden emin olmak için, matristeki diğer dönüştürmeden önce döndürmeyi gerçekleştiren perpendRotation()
yöntemini kullanın.
Görüntüleme nesnesinin Matrix3D nesnesine appendRotation()
yönteminin dönüştürmesi uygulandığında, görüntüleme nesnesinin önbelleğe alınan rotation özelliği değerleri geçersiz kılınır.
Görüntüleme nesnesinin konumuna göre belirli bir nokta etrafında dönmesini sağlamanın bir yolu, nesnenin çevirmesini belirtilen noktaya ayarlamak, appendRotation()
yöntemini kullanarak nesneyi döndürmek ve nesneyi geri orijinal konumuna çevirmektir. Şu örnekte, myObject
3B görüntüleme nesnesi, (10,10,0) koordinatı çevresinde y ekseni dönüşü gerçekleştirir.
myObject.z = 1; myObject.transform.matrix3D.appendTranslation(10,10,0); myObject.transform.matrix3D.appendRotation(1, Vector3D.Y_AXIS); myObject.transform.matrix3D.appendTranslation(-10,-10,0);
Parametreler
degrees:Number — Dönüş derecesi.
| |
axis:Vector3D — Dönüş ekseni veya yönü. Genel eksenler, X_AXIS (Vector3D(1,0,0) ), Y_AXIS (Vector3D(0,1,0) ) ve Z_AXIS (Vector3D(0,0,1) ) şeklindedir. Bu vektör bir uzunluğuna sahip olmalıdır.
| |
pivotPoint:Vector3D (default = null ) — Nesne dönüşünün merkezini belirleyen bir nokta. Bir nesnenin varsayılan pivot noktası, o nesnenin kayıt noktasıdır.
|
İlgili API Öğeleri
appendScale | () | yöntem |
public function appendScale(xScale:Number, yScale:Number, zScale:Number):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Matrix3D nesnesinin sonuna x, y ve z eksenleri boyunca artışlı bir ölçek değişikliği ekler. Görüntüleme nesnesine Matrix3D nesnesi uygulandığında, matris, Matrix3D nesnesindeki diğer dönüştürmeden sonra ölçek değişikliklerini gerçekleştirir. Varsayılan ölçek faktörü şudur: (1.0, 1.0, 1.0).
Ölçek, üç eksen (x,y,z) boyunca üç artış hareketinden oluşan bir küme olarak tanımlanır. Her ekseni farklı bir sayıyla çarpabilirsiniz. Bir görüntüleme nesnesine ölçek değişiklikleri uygulandığında, nesnenin boyutu artar veya azalır. Örneğin, x, y ve z eksenlerinin ikiye ayarlanması, nesnenin boyutlarını da iki katına çıkarırken eksenlerin 0.5
olarak ayarlanması ise boyutları yarıya düşürür. Çevirmenin yalnızca belirli bir ekseni etkilediğinden emin olmak için diğer parametreleri bir değerine ayarlayın. Bir parametresi, belirli eksen boyunca herhangi bir ölçek değişikliği olmayacağı anlamına gelir.
Görüntüleme nesnesinin gerilmesi veya küçülmesi gibi bozulmaları yönetme ya da bir konumu yakınlaştırma ve uzaklaştırmanın yanı sıra yeniden boyutlandırma için de appendScale()
yöntemi kullanılabilir. Ölçek dönüştürmeleri, görüntüleme nesnesinin döndürmesi ve çevirmesi sırasında otomatik olarak gerçekleştirilir.
Dönüştürmenin sırası önemlidir. Ardından çevirme dönüştürmesi gelen bir yeniden boyutlandırma, ardından dönüştürme yeniden boyutlandırması gelen bir çevirmeden farklı bir etki oluşturur.
Parametreler
xScale:Number — Nesneyi x ekseni boyunca ölçeklemek için kullanılan bir çarpan.
| |
yScale:Number — Nesneyi y ekseni boyunca ölçeklemek için kullanılan bir çarpan.
| |
zScale:Number — Nesneyi z ekseni boyunca ölçeklemek için kullanılan bir çarpan.
|
İlgili API Öğeleri
appendTranslation | () | yöntem |
public function appendTranslation(x:Number, y:Number, z:Number):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Matrix3D nesnesinin sonuna artışlı bir çevirme ve x, y ve z eksenleri boyunca yeniden konumlandırma ekler. Matrix3D nesnesi görüntüleme nesnesine uygulandığında, Matrix3D nesnesindeki diğer dönüştürme işlemlerinden sonra matris, çevirme değişikliklerini gerçekleştirir.
Çevirme, üç eksen (x,y,z) boyunca üç artış hareketinden oluşan bir küme olarak tanımlanır. Görüntüleme nesnesine dönüştürme uygulandığında, görüntüleme nesnesi parametreler tarafından belirtildiği şekilde geçerli konumundan x, y ve z ekseni boyunca hareket eder. Çevirme işleminin yalnızca belirli bir ekseni etkilediğinden emin olmak için diğer parametreleri sıfır değerine ayarlayın. Sıfır parametresi, belirli bir eksende değişiklik olmayacağı anlamına gelir.
Çevirme değişiklikleri mutlak değildir. Bunlar matrisin geçerli konumuna ve yönlendirmesine göredir. Dönüştürme matrisine mutlak bir değişiklik uygulamak için recompose()
yöntemini kullanın. Dönüştürmenin sırası da önemlidir. Ardından dönüş dönüştürmesi gelen bir çevirme, ardından çevirme gelen bir dönüşten farklı bir etki oluşturur.
Parametreler
x:Number — x ekseni boyunca artışlı bir çevirme.
| |
y:Number — y ekseni boyunca artışlı bir çevirme.
| |
z:Number — z ekseni boyunca artışlı bir çevirme.
|
İlgili API Öğeleri
clone | () | yöntem |
copyColumnFrom | () | yöntem |
public function copyColumnFrom(column:uint, vector3D:Vector3D):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Çağrı yapan Matrix3D nesnesinin belirli sütununa bir Vector3D nesnesi kopyalar.
Parametreler
column:uint — Kopyanın hedef sütunu.
| |
vector3D:Vector3D — Verinin kopyalanacağı kaynak Vector3D nesnesi.
|
copyColumnTo | () | yöntem |
public function copyColumnTo(column:uint, vector3D:Vector3D):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Çağrı yapan Matrix3D nesnesinin belirli sütununu Vector3D nesnesine kopyalar
Parametreler
column:uint — Verilerin kopyalanacağı kaynak sütun.
| |
vector3D:Vector3D — Kopyanın hedef Vector3D nesnesi.
|
copyFrom | () | yöntem |
public function copyFrom(sourceMatrix3D:Matrix3D):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Kaynak Matrix3D nesnesindeki tüm matris verilerini çağrı yapan Matrix3D nesnesine kopyalar.
Parametreler
sourceMatrix3D:Matrix3D — Verilerin kopyalanacağı kaynak Matrix3D nesnesi.
|
copyRawDataFrom | () | yöntem |
public function copyRawDataFrom(vector:Vector.<Number>, index:uint = 0, transpose:Boolean = false):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Kaynak vector nesnesindeki tüm vektör verilerini çağrı yapan Matrix3D nesnesine kopyalar. İsteğe bağlı dizin parametresi vektörde herhangi bir başlangıç yuvasını seçmenize izin verir.
Parametreler
vector:Vector.<Number> — Verilerin kopyalanacağı kaynak vector nesnesi.
| |
index:uint (default = 0 )
| |
transpose:Boolean (default = false )
|
copyRawDataTo | () | yöntem |
public function copyRawDataTo(vector:Vector.<Number>, index:uint = 0, transpose:Boolean = false):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Çağrı yapan Matrix3D nesnesindeki tüm matris verisini sağlanan vektöre kopyalar. İsteğe bağlı dizin parametresi vektörde herhangi bir hedef başlangıç yuvasını seçmenize izin verir.
Parametreler
vector:Vector.<Number> — Verilerin kopyalanacağı hedef vector nesnesi.
| |
index:uint (default = 0 )
| |
transpose:Boolean (default = false )
|
copyRowFrom | () | yöntem |
public function copyRowFrom(row:uint, vector3D:Vector3D):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Çağrı yapan Matrix3D nesnesinin belirli satırına bir Vector3D nesnesi kopyalar.
Parametreler
row:uint — Verilerin kopyalanacağı hedef satır.
| |
vector3D:Vector3D — Verinin kopyalanacağı kaynak Vector3D nesnesi.
|
copyRowTo | () | yöntem |
public function copyRowTo(row:uint, vector3D:Vector3D):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Çağrı yapan Matrix3D nesnesinin belirli satırını Vector3D nesnesine kopyalar.
Parametreler
row:uint — Verilerin kopyalanacağı kaynak satır.
| |
vector3D:Vector3D — Verilerin içine kopyalanacağı Vector3D nesnesi.
|
copyToMatrix3D | () | yöntem |
decompose | () | yöntem |
public function decompose(orientationStyle:String = "eulerAngles"):Vector.<Vector3D>
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Dönüştürme matrisinin çevirme, dönüş ve ölçek ayarlarını üç Vector3D nesnesinden oluşan bir Vector olarak döndürür. Çevirme öğelerini tutan birinci Vector3D nesnesi. Dönüş öğelerini tutan birinci Vector3D nesnesi. Ölçek öğelerini tutan birinci Vector3D nesnesi.
interpolateTo()
yöntemi gibi bazı Matrix3D yöntemleri, dönüştürme gerçekleştirmek için matrise otomatik olarak decompose ve recompose işlemlerini uygular.
Mutlak bir üst başvuru karesiyle matrisin dönüştürmesini değiştirmek için decompose()
yöntemiyle ayarları alın ve uygun değişiklikleri yapın. Ardından, recompose()
yöntemini kullanarak değiştirilmiş dönüştürmeye Matrix3D nesnesini ayarlayabilirsiniz.
decompose()
yönteminin parametresi, dönüştürme için kullanılacak yönlendirme stilini belirtir. Varsayılan yönlendirme eulerAngles
olup bu, her eksen için ayrı dönüş açısına sahip bir yönlendirmeyi tanımlar. Dönüşler art arda gerçekleşir ve birbirinin eksenini değiştirmez. Görüntüleme nesnesinin axis rotation özellikleri, Euler Angles yönlendirme stili dönüştürme gerçekleştirir. Diğer yönlendirme stili seçenekleri arasında axisAngle
ve quaternion
yer alır. Eksen Açısı yönlendirmesi, yönlendirmeyi belirlemek için bir eksen ve bir açının kombinasyonunu kullanır. Etrafında nesnenin döndüğü eksen, bir yönü temsil eden birim vektörüdür. Açı, vektör etrafındaki dönüşün büyüklüğünü temsil eder. Ayrıca yön, görüntüleme nesnesinin nereye baktığını ve açı da hangi tarafın yukarıda olduğunu belirler. appendRotation()
ve prependRotation()
yöntemleri Axis Angle yönlendirmesini kullanır. quaternion yönlendirmesi, karmaşık sayıları ve vektörün dördüncü öğesini kullanır. Üç döndürme ekseni (x, y, z) ve bir döndürme açısı (w) yönlendirmeyi temsil eder. interpolate()
yöntemi kuaterniyon yönlendirmesini kullanır.
Parametreler
orientationStyle:String (default = "eulerAngles ") — Matris dönüştürmesi için kullanılan yönlendirme stilini belirleyen isteğe bağlı bir parametre. Üç yönlendirme stili şunlardır: eulerAngles (EULER_ANGLES sabiti), axisAngle (AXIS_ANGLE sabiti) ve quaternion (QUATERNION sabiti). Farklı yönlendirme stilleri hakkında ek bilgi almak için geom.Orientation3D sınıfına bakın.
|
Vector.<Vector3D> — Her biri sırayla çevirme, dönüş ve ölçek ayarlarını içeren üç Vector3D nesnesinden oluşan bir Vector.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
decompose()
ve recompose()
yöntemlerini kullanır. decompose()
yöntemiyle döndürülen birinci Vector3D nesnesi, çevirme koordinatlarını tutar. Birinci Vector3D nesnesi, ölçek ayarlarını tutar. Vector3D nesnesinin incrementBy()
yöntemi, matris mutlak çevirme ve ölçek ayarlarını arttırır.
package { import flash.display.MovieClip; import flash.display.Shape; import flash.geom.*; import flash.events.Event; public class Matrix3DdecomposeExample extends MovieClip { private var ellipse:Shape = new Shape(); public function Matrix3DdecomposeExample():void { ellipse.x = (this.stage.stageWidth / 2); ellipse.y = (this.stage.stageHeight - 40); ellipse.z = 1; ellipse.graphics.beginFill(0xFF0000); ellipse.graphics.lineStyle(2); ellipse.graphics.drawEllipse(0, 0, 50, 40); ellipse.graphics.endFill(); addChild(ellipse); ellipse.addEventListener(Event.ENTER_FRAME, enterFrameHandler); } private function enterFrameHandler(e:Event):void { var v3:Vector.<Vector3D> = new Vector.<Vector3D>(3); v3 = ellipse.transform.matrix3D.decompose(); v3[0].incrementBy(new Vector3D(0,0,1)); v3[2].incrementBy(new Vector3D(0.01,0,0)); ellipse.transform.matrix3D.recompose(v3); } } }
deltaTransformVector | () | yöntem |
public function deltaTransformVector(v:Vector3D):Vector3D
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Vector3D nesnesini bir alan koordinatından diğerine dönüştürmek için çevirme öğeleri olmadan dönüştürme matrisini kullanır. Döndürme ve ölçekleme dönüştürmeleri uygulandıktan sonra, döndürülen Vector3D nesnesi yeni koordinatları tutar. deltaTransformVector()
yöntemi yalnızca çevirme dönüştürmesini içeren bir matris uygularsa, döndürülen Vector3D orijinal Vector3D nesnesiyle aynıdır.
Bir koordinat alanındaki görüntüleme nesnesinin ikinci bir görüntüleme nesnesinin döndürme dönüştürmesine yanıt vermesini sağlamak için deltaTransformVector()
yöntemini kullanabilirsiniz. Nesne döndürmeyi kopyalamaz; yalnızca döndürme işlemindeki değişiklikleri yansıtmak için konumunu değiştirir. Örneğin, dönen bir 3B görüntüleme nesnesi çizmek üzere display.Graphics
API'sini kullanmak için, nesnenin dönen koordinatlarını 2B bir noktaya eşlemeniz gerekir. İlk olarak her dönüşten sonra deltaTransformVector()
yöntemini kullanarak nesnenin 3B koordinatlarını alın. Ardından 3B koordinatları 2B noktalara çevirmek için görüntüleme nesnesinin local3DToGlobal()
yöntemini uygulayın. Daha sonra dönen 3B nesne çizmek için 2B noktaları kullanabilirsiniz.
Not: Bu yöntem, iletilen Vector3D öğesinin w bileşenini otomatik olarak 0.0 şeklinde ayarlar.
Parametreler
v:Vector3D — Dönüştürülecek koordinatları tutan Vector3D nesnesi.
|
Vector3D — Dönüştürülen koordinatlara sahip bir Vector3D nesnesi.
|
İlgili API Öğeleri
identity | () | yöntem |
public function identity():void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Geçerli matrisi bir kimlik veya birim matrisine dönüştürür. Kimlik matrisi, ana diyagonal konumdaki öğeler için bir değerine ve diğer tüm öğeler için sıfır değerine sahiptir. Sonuç olarak rawData
değeri 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1
, döndürme ayarı Vector3D(0,0,0)
, konum veya çevirme ayarı Vector3D(0,0,0)
ve ölçeği Vector3D(1,1,1)
olarak ayarlı olan bir matris elde edilir. Bir kimlik matrisinin temsili şu şekildedir:
Bir kimlik matrisi uygulanarak dönüştürülen bir nesne herhangi bir dönüştürme gerçekleştirmez. Başka bir deyişle, bir matris kimlik matrisiyle çarpılırsa, sonuç olarak orijinal matrisle aynı (tamamen aynı) bir matris elde edilir.
interpolate | () | yöntem |
public static function interpolate(thisMat:Matrix3D, toMat:Matrix3D, percent:Number):Matrix3D
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Bir matrisin çevirisini, dönüşünü ve ölçek dönüşümlerini hedef matrisin aynı öğelerine ekler.
interpolate()
yöntemi, görüntüleme nesnesinin axis rotation özellikleri gibi yöntemler kullanılırken oluşabilecek istenmeyen sonuçlardan bazılarını önler. interpolate()
yöntemi, görüntüleme nesnesinin rotation özelliğinin önbelleğe alınan değerini geçersiz kılar ve enterpolasyondan önce görüntüleme nesnesinin matrisinin yönlendirme öğelerini bir kuaterniyona dönüştürür. Bu yöntem döndürme için en kısa, en etkili yolu garantiler. Ayrıca gimbal kilitlenmesi olmadan düzgün bir dönüş sağlar. Her eksenin bağımsız olarak işlendiği Euler Angles kullanıldığında gimbal kilitlenmesi oluşabilir. İki veya daha fazla eksen etrafında döndürme sırasında, eksenler aynı hizaya gelerek beklenmeyen sonuçlara yol açabilir. Kuaterniyon dönüş, gimbal kilitlenmesini önler.
interpolate()
yöntemine yapılan sonraki çağrılar, hızlı şekilde başlayan ve sonra başka bir görüntüleme nesnesine yavaşça yaklaşan bir görüntüleme nesnesinin etkisi oluşturur. Örneğin, thisMat
parametresini döndürülen Matrix3D nesnesine; toMat
parametresini hedef görüntüleme nesnesinin ilişkili Matrix3D nesnesine ve percent
parametresini 0.1
değerine ayarlarsanız, görüntüleme nesnesi hedef nesneye yüzde on yaklaşır. Sonraki çağrılarda veya sonraki karelerde, nesne hedefe ulaşıncaya kadar, kalan yüzde 90'ın yüzde onu kadar ve ardından, kalan mesafenin yüzde onu kadar hareket eder.
Parametreler
thisMat:Matrix3D — Enterpolasyonlanacak Matrix3D nesnesi.
| |
toMat:Matrix3D — Hedef Matrix3D nesnesi.
| |
percent:Number — thisMat Matrix3D nesnesinin hedef Matrix3D nesnesine doğru enterpolasyonlanan yüzde değerini belirleyen, 0 ve 1 arasında bir değer.
|
Matrix3D — Matrisin değerlerini başlangıç matrisi ile hedef matris arasına yerleştiren öğeleri içeren bir Matrix3D nesnesi. Döndürülen matris this görüntüleme nesnesine uygulandığında, nesne belirtilen yüzde değerinde hedef nesneye yakınlaşır.
|
İlgili API Öğeleri
interpolateTo | () | yöntem |
public function interpolateTo(toMat:Matrix3D, percent:Number):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Bu matrisi hedef matrisin çevirisine, dönüşüne ve ölçek dönüşümlerine ekler.
interpolateTo()
yöntemi, görüntüleme nesnesinin axis rotation özellikleri gibi yöntemler kullanılırken oluşabilecek istenmeyen sonuçları önler. interpolateTo()
yöntemi, görüntüleme nesnesinin rotation özelliğinin önbelleğe alınan değerini geçersiz kılar ve enterpolasyondan önce görüntüleme nesnesinin matrisinin yönlendirme öğelerini bir kuaterniyona dönüştürür. Bu yöntem döndürme için en kısa, en etkili yolu garantiler. Ayrıca gimbal kilitlenmesi olmadan düzgün bir dönüş sağlar. Her eksenin bağımsız olarak işlendiği Euler Angles kullanıldığında gimbal kilitlenmesi oluşabilir. İki veya daha fazla eksen etrafında döndürme sırasında, eksenler aynı hizaya gelerek beklenmeyen sonuçlara yol açabilir. Kuaterniyon dönüş, gimbal kilitlenmesini önler.
Not: Enterpolasyon durumunda matrisin ölçeklendirme değeri sıfırlanır ve matris normalleştirilir.
interpolateTo()
yöntemine yapılan sonraki çağrılar, hızlı şekilde başlayan ve sonra başka bir görüntüleme nesnesine yavaşça yaklaşan bir görüntüleme nesnesinin etkisi oluşturur. Örneğin, percent parametresi 0.1
değerine ayarlanırsa, görüntüleme nesnesi, toMat
parametresi tarafından belirtilen hedef nesneye yüzde on yaklaşır. Sonraki çağrılarda veya sonraki karelerde, nesne hedefe ulaşıncaya kadar, kalan yüzde 90'ın yüzde onu kadar ve ardından, kalan mesafenin yüzde onu kadar hareket eder.
Parametreler
toMat:Matrix3D — Hedef Matrix3D nesnesi.
| |
percent:Number — Hedefe göre görüntüleme nesnesinin konumunu belirleyen, 0 ile 1 arasında bir değer. Değer 1.0 değerine yakınlaştıkça, görüntüleme nesnesi de geçerli konumuna yakınlaşır. Değer 0 değerine yakınlaştıkça, görüntüleme nesnesi de hedefe yakınlaşır.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
ellipse2
, üç boyutlu görüntüleme nesnesi, başka bir üç boyutlu görüntüleme nesnesi olan ellipse1
öğesine doğru gider. ellipse2
, ellipse1
öğesini takip ederek onu yakalamaya çalışır. ellipse1
öğesi kendi y ekseni çevresinde dönmezse, ellipse2
, ellipse1
öğesine ulaşıp üstüne iner. İki elips aynı şekilde çizilir ancak farklı üç boyutlu dünya-alan konumlarına yerleştirilir.
package { import flash.display.MovieClip; import flash.display.Shape; import flash.display.Graphics; import flash.geom.*; import flash.events.Event; public class InterpolateToExample extends MovieClip { private var ellipse1:Shape = new Shape(); private var ellipse2:Shape = new Shape(); public function InterpolateToExample():void { ellipse1 = myEllipses(250, 100, 500, 0xFF0000); addChild(ellipse1); ellipse2 = myEllipses(-30, 120, 1, 0x00FF00); addChild(ellipse2); addEventListener(Event.ENTER_FRAME, enterFrameHandler); } private function myEllipses(x:Number, y:Number, z:Number, c:Number):Shape { var s:Shape = new Shape(); s.x = x; s.y = y; s.z = z; s.graphics.beginFill(c); s.graphics.lineStyle(2); s.graphics.drawEllipse(100, 50, 100, 80); s.graphics.endFill(); return s; } private function enterFrameHandler(e:Event) { ellipse1.rotationY += 1; ellipse2.transform.matrix3D.interpolateTo(ellipse1.transform.matrix3D, 0.1); } } }
invert | () | yöntem |
public function invert():Boolean
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Geçerli matrisi ters çevirir. Ters çevrilmiş matris, orijinal matrisle aynı boyuttadır ancak orijinal matrisin tersi bir dönüştürme işlemi gerçekleştirir. Örneğin, orijinal matris, x ekseni etrafında tek yönde nesne dönüşüne sahipse, matrisin tersi de eksen etrafında zıt yönde nesne dönüşüne sahip olur. Bir nesneye ters çevrilmiş bir matris uygulandığında, orijinal matrisin gerçekleştirdiği dönüştürme geri alınır. Matris, ters çevrilmiş matrisiyle çarpılırsa, sonuç kimlik matrisidir.
Bir matrisi başka bir matrise bölmek için matrisin tersi kullanılabilir. A matrisini B matrisine bölmek için A matrisi B matrisinin tersiyle çarpılır. Ters matris, kamera alanıyla da kullanılabilir. Kamera dünya alanında hareket ettiğinde, dünya görünümünden kamera veya görünüm alanına dönüştürme yapmak için dünyadaki nesnenin zıt yönde hareket etmesi gerekir. Örneğin, kamera yaklaştıkça nesneler büyür. Başka bir deyişle, kamera dünya z ekseninin aşağısına hareket ettikçe nesne, z dünya ekseninin yukarısına hareket eder.
invert()
yöntemi, geçerli matrisi ters çevrilmiş bir matrisle değiştirir. Geçerli matrisi değiştirmeden bir matrisi ters çevirmek isterseniz, ilk olarak clone()
yöntemini kullanarak geçerli matrisi kopyalayın ve sonra kopyaya invert()
yöntemini uygulayın.
Matrix3D nesnesinin ters çevrilebilir olması gerekir.
DöndürürBoolean — Matris başarıyla ters çevrilirse true değerini döndürür.
|
İlgili API Öğeleri
pointAt | () | yöntem |
public function pointAt(pos:Vector3D, at:Vector3D = null, up:Vector3D = null):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Görüntüleme nesnesini belirtilen bir konuma bakacak şekilde döndürür. Bu yöntem, yönlendirmeye yerinde değiştirme uygulanmasını sağlar. Görüntüleme nesnesinin ileri yön vektörü (at
Vector3D nesnesi), belirtilen dünyaya göre konuma işaret eder. Görüntüleme nesnesinin yukarı yönü up
Vector3D nesnesiyle belirtilir.
pointAt()
yöntemi, görüntüleme nesnesinin önbelleğe alınan rotation özelliği değerini geçersiz kılar. Bu yöntem, nesnenin belirtilen konuma dönmesini sağlamak için, görüntüleme nesnesinin matrisini parçalar ve döndürme öğelerini değiştirir. Daha sonra görüntüleme nesnesinin matrisini yeniden oluşturur (günceller), böylece dönüştürme gerçekleştirilir. Nesne hareket eden nesnenin konumu gibi hareket eden bir hedefi işaret ediyorsa, sonraki çağrılarda yöntem nesnenin hareket eden hedefe doğru dönmesini sağlar.
Not: İsteğe bağlı parametreleri ayarlamadan Matrix3D.pointAt()
yöntemini kullanırsanız, bir hedef nesnesi, belirtilen dünya konumuyla varsayılan olarak karşı karşıya gelmez. at
değerlerini -y eksenine (0,-1,0) ve up
değerlerini -z eksenine (0,0,-1) ayarlamanız gerekir.
Parametreler
pos:Vector3D — Hedef nesnenin dünyaya göre konumu. Dünyaya göre terimi, tüm nesnelerin konumlandırıldığı dünya alanına ve koordinatlarına göre nesnenin dönüştürmesini tanımlar.
| |
at:Vector3D (default = null ) — Görüntüleme nesnesinin işaret etmekte olduğu yeri tanımlayan, nesneye göre vektör. Nesneye göre terimi, nesne alanına, nesnenin kendi başvuru karesine ve koordinat sistemine göre nesnenin dönüştürmesini tanımlar. Varsayılan değer, +y eksenidir (0,1,0).
| |
up:Vector3D (default = null ) — Görüntüleme nesnesi için “yukarı“ tanımını yapan, nesneye göre vektör. Nesne yukarıdan aşağıya bakılarak çizilirse, +z ekseni bunun “yukarı“ vektörü olur. Nesneye göre terimi, nesne alanına, nesnenin kendi başvuru karesine ve koordinat sistemine göre nesnenin dönüştürmesini tanımlar. Varsayılan değer, +z-eksenidir (0,0,1).
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
pointAt()
öğesinin "at" ve "up" parametrelerini değiştirebilirsiniz.
package { import flash.display.MovieClip; import flash.display.Shape; import flash.display.Graphics; import flash.geom.*; import flash.events.Event; public class PointAtExample extends MovieClip { private var ellipse:Shape = new Shape(); private var triangle:Shape = new Shape(); public function PointAtExample():void { ellipse.graphics.beginFill(0xFF0000); ellipse.graphics.lineStyle(2); ellipse.graphics.drawEllipse(30, 40, 50, 40); ellipse.graphics.endFill(); ellipse.x = 100; ellipse.y = 150; ellipse.z = 1; triangle.graphics.beginFill(0x0000FF); triangle.graphics.moveTo(0, 0); triangle.graphics.lineTo(40, 40); triangle.graphics.lineTo(80, 0); triangle.graphics.lineTo(0, 0); triangle.graphics.endFill(); triangle.x = 200; triangle.y = 50; triangle.z = 1; addChild(ellipse); addChild(triangle); ellipse.addEventListener(Event.ENTER_FRAME, ellipseEnterFrameHandler); triangle.addEventListener(Event.ENTER_FRAME, triangleEnterFrameHandler); } private function ellipseEnterFrameHandler(e:Event) { if(e.target.y > 0) { e.target.y -= 1; e.target.x -= 1; } } private function triangleEnterFrameHandler(e:Event) { e.target.transform.matrix3D.pointAt(ellipse.transform.matrix3D.position, Vector3D.X_AXIS, Vector3D.Y_AXIS); } } }
prepend | () | yöntem |
public function prepend(rhs:Matrix3D):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Geçerli Matrix3D nesnesini başka bir Matrix3D nesnesiyle çarparak bir matrisi başa ekler. Sonuç, iki matris dönüştürmesini birleştirir.
Matris çarpma işlemi, matris toplama işleminden farklıdır. Matris çarpma işlemi komütatif değildir. Başka bir deyişle, A çarpı B, B çarpı A'ya eşit değildir. prepend()
yönteminde çarpma işlemi sağdan başlar, böylece rhs
Matrix3D nesnesi, çarpma operatörünün sağ tarafındadır.
thisMatrix = thisMatrix * rhs
prepend()
yöntemiyle yapılan değişiklikler, nesne-alana bağlıdır. Başka bir deyişle, bunlar her zaman nesnenin ilk başvuru karesiyle görecelidir.
prepend()
yöntemi, geçerli matrisi başa eklenen matrisle değiştirir. Geçerli matrisi değiştirmeden iki matrisi başa eklemek isterseniz, ilk olarak clone()
yöntemini kullanarak geçerli matrisi kopyalayın ve sonra kopyaya prepend()
yöntemini uygulayın.
Parametreler
rhs:Matrix3D — Geçerli Matrix3D nesnesinin çarpıldığı matrisin sağ tarafı.
|
İlgili API Öğeleri
prependRotation | () | yöntem |
public function prependRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Matrix3D nesnesinin başına artışlı bir dönüş ekler. Görüntüleme nesnesine Matrix3D nesnesi uygulandığında, matris, Matrix3D nesnesindeki diğer dönüştürmeden önce döndürme işlemini gerçekleştirir.
Görüntüleme nesnesinin dönüşü, bir eksen, eksen etrafındaki dönüşün artış derecesi ve nesne dönüşünün merkezi için isteğe bağlı bir pivot noktası tarafından tanımlanır. Eksen herhangi bir genel yön olabilir. Ortak eksenler, X_AXIS
(Vector3D(1,0,0)
), Y_AXIS
(Vector3D(0,1,0)
) ve Z_AXIS
(Vector3D(0,0,1)
) şeklindedir. Havacılık terminolojisinde, y ekseni etrafındaki dönüşe rotadan sapma denir. x ekseni etrafındaki dönüşe yunuslama denir. z ekseni etrafındaki dönüşe tono denir.
Dönüştürmenin sırası önemlidir. Ardından çevirme dönüştürmesi gelen bir dönüş, ardından dönüş gelen bir çevirmeden farklı bir etki oluşturur.
Dönüş etkisi mutlak değildir. Etki nesneye göre ve orijinal konum ve yönlendirmenin başvuru karesine göredir. Dönüştürmeye mutlak bir değişiklik uygulamak için recompose()
yöntemini kullanın.
Görüntüleme nesnesinin Matrix3D nesnesine prependRotation()
yönteminin dönüştürmesi uygulandığında, görüntüleme nesnesinin önbelleğe alınan rotation özelliği değerleri geçersiz kılınır.
Görüntüleme nesnesinin konumuna göre belirli bir nokta etrafında dönmesini sağlamanın bir yolu, nesnenin çevirmesini belirtilen noktaya ayarlamak, prependRotation()
yöntemini kullanarak nesneyi döndürmek ve nesneyi geri orijinal konumuna çevirmektir. Şu örnekte, myObject
3B görüntüleme nesnesi, (10,10,0) koordinatı çevresinde y ekseni dönüşü gerçekleştirir.
myObject.z = 1; myObject.transform.matrix3D.prependTranslation(10,10,0); myObject.transform.matrix3D.prependRotation(1, Vector3D.Y_AXIS); myObject.transform.matrix3D.prependTranslation(-10,-10,0);
Parametreler
degrees:Number — Dönüş derecesi.
| |
axis:Vector3D — Dönüş ekseni veya yönü. Genel eksenler, X_AXIS (Vector3D(1,0,0) ), Y_AXIS (Vector3D(0,1,0) ) ve Z_AXIS (Vector3D(0,0,1) ) şeklindedir. Bu vektör bir uzunluğuna sahip olmalıdır.
| |
pivotPoint:Vector3D (default = null ) — Dönüşün merkezini belirleyen bir nokta. Bir nesnenin varsayılan pivot noktası, o nesnenin kayıt noktasıdır.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
package { import flash.display.MovieClip; import flash.display.Shape; import flash.geom.*; import flash.events.MouseEvent; public class Matrix3DprependRotationExample extends MovieClip { private var ellipse:Shape = new Shape(); public function Matrix3DprependRotationExample():void { ellipse.graphics.beginFill(0xFF0000); ellipse.graphics.lineStyle(2); ellipse.graphics.drawEllipse(-50, -40, 100, 80); ellipse.graphics.endFill(); ellipse.x = (this.stage.stageWidth / 2); ellipse.y = (this.stage.stageHeight / 2); ellipse.z = 1; addChild(ellipse); stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); } private function mouseMoveHandler(e:MouseEvent):void { var y:int; var x:int; if(e.localX > ellipse.x) { y = (Math.round(e.localX) / 100); } else { y = -(Math.round(e.localX) / 10); } if(e.localY > ellipse.y) { x = (Math.round(e.localY) / 100); } else { x = -(Math.round(e.localY) / 100); } ellipse.transform.matrix3D.prependRotation(y, Vector3D.Y_AXIS); ellipse.transform.matrix3D.prependRotation(x, Vector3D.X_AXIS); } } }
prependScale | () | yöntem |
public function prependScale(xScale:Number, yScale:Number, zScale:Number):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Matrix3D nesnesinin başına x, y ve z eksenleri boyunca artışlı bir ölçek değişikliği ekler. Görüntüleme nesnesine Matrix3D nesnesi uygulandığında, matris, Matrix3D nesnesindeki diğer dönüştürmeden sonra ölçek değişikliklerini gerçekleştirir. Değişiklikler nesneye göre ve orijinal konum ve yönlendirmenin başvuru karesine göredir. Varsayılan ölçek faktörü şudur: (1.0, 1.0, 1.0).
Ölçek, üç eksen (x,y,z) boyunca üç artış hareketinden oluşan bir küme olarak tanımlanır. Her ekseni farklı bir sayıyla çarpabilirsiniz. Bir görüntüleme nesnesine ölçek değişiklikleri uygulandığında, nesnenin boyutu artar veya azalır. Örneğin, x, y ve z eksenlerinin ikiye ayarlanması, nesnenin boyutlarını da iki katına çıkarırken eksenlerin 0.5
olarak ayarlanması ise boyutları yarıya düşürür. Çevirmenin yalnızca belirli bir ekseni etkilediğinden emin olmak için diğer parametreleri bir değerine ayarlayın. Bir parametresi, belirli eksen boyunca herhangi bir ölçek değişikliği olmayacağı anlamına gelir.
prependScale()
yöntemi, bir görüntüleme nesnesinin gerilmesi veya küçülmesi gibi bozulmaları yönetmek ve yeniden boyutlandırmak için kullanılabilir. Aynı zamanda bir konumu yakınlaştırmak ve uzaklaştırmak için de kullanılabilir. Ölçek dönüştürmeleri, görüntüleme nesnesinin döndürmesi ve çevirmesi sırasında otomatik olarak gerçekleştirilir.
Dönüştürmenin sırası önemlidir. Ardından çevirme dönüştürmesi gelen bir yeniden boyutlandırma, ardından dönüştürme yeniden boyutlandırması gelen bir çevirmeden farklı bir etki oluşturur.
Parametreler
xScale:Number — Nesneyi x ekseni boyunca ölçeklemek için kullanılan bir çarpan.
| |
yScale:Number — Nesneyi y ekseni boyunca ölçeklemek için kullanılan bir çarpan.
| |
zScale:Number — Nesneyi z ekseni boyunca ölçeklemek için kullanılan bir çarpan.
|
İlgili API Öğeleri
prependTranslation | () | yöntem |
public function prependTranslation(x:Number, y:Number, z:Number):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Matrix3D nesnesinin başına artışlı bir çevirme ve x, y ve z eksenleri boyunca yeniden konumlandırma ekler. Matrix3D nesnesi görüntüleme nesnesine uygulandığında, Matrix3D nesnesindeki diğer dönüştürme işlemlerinden sonra matris, çevirme değişikliklerini gerçekleştirir.
Çevirme, görüntüleme nesnesinin geçerli konumundan x, y ve z ekseni boyunca hareket ettiği mesafeyi belirtir. prependTranslation()
yöntemi, çevirmeyi, üç eksen (x,y,z) boyunca üç artışlı değişiklik kümesi olarak ayarlar. Yalnızca belirli bir eksende çevirme değişikliği olması için diğer parametreleri sıfır değerine ayarlayın. Sıfır parametresi, belirli bir eksende değişiklik olmayacağı anlamına gelir.
Çevirme değişiklikleri mutlak değildir. Etki nesneye göre ve orijinal konum ve yönlendirmenin başvuru karesine göredir. Dönüştürme matrisine mutlak bir değişiklik uygulamak için recompose()
yöntemini kullanın. Dönüştürmenin sırası da önemlidir. Ardından dönüş dönüştürmesi gelen bir çevirme, ardından çevirme dönüştürmesi gelen bir dönüşten farklı bir etki oluşturur. prependTranslation()
kullanıldığında, diğer dönüştürmelere bakılmaksızın görüntüleme nesnesi baktığı yönde hareket etmeye devam eder. Örneğin, görüntüleme nesnesi pozitif x eksenine bakıyorsa, nesnenin nasıl döndürüldüğüne bakılmaksızın prependTranslation()
tarafından belirtilen yönde hareket etmeye devam eder. Çevirme değişikliklerinin diğer dönüştürmelerden sonra gerçekleşmesini sağlamak için appendTranslation()
yöntemini kullanın.
Parametreler
x:Number — x ekseni boyunca artışlı bir çevirme.
| |
y:Number — y ekseni boyunca artışlı bir çevirme.
| |
z:Number — z ekseni boyunca artışlı bir çevirme.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
package { import flash.display.MovieClip; import flash.display.Sprite; import flash.geom.*; import flash.events.MouseEvent; public class Matrix3DprependTranslationExample extends MovieClip { private var ellipse:Sprite = new Sprite(); public function Matrix3DprependTranslationExample():void { ellipse.x = this.stage.stageWidth / 2; ellipse.y = this.stage.stageHeight - 100; ellipse.z = 1; ellipse.graphics.beginFill(0xFF0000); ellipse.graphics.lineStyle(2); ellipse.graphics.drawEllipse(0, 0, 60, 50); ellipse.graphics.endFill(); addChild(ellipse); ellipse.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler); ellipse.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler); } private function mouseOverHandler(e:MouseEvent):void { if(ellipse.y > 0) { ellipse.transform.matrix3D.prependTranslation(0, -10, 0); } } private function mouseOutHandler(e:MouseEvent):void { if(ellipse.y > 0) { ellipse.transform.matrix3D.prependTranslation(0, -10, 0); } else { ellipse.transform.matrix3D.prependTranslation(0, (this.stage.stageHeight - 100), 0); } } } }
recompose | () | yöntem |
public function recompose(components:Vector.<Vector3D>, orientationStyle:String = "eulerAngles"):Boolean
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Dönüştürme matrisinin çevirme, döndürme ve ölçek ayarlarını yapar. Görüntüleme nesnesinin rotation özelliği veya Matrix3D nesnesinin döndürme yöntemleri tarafından yapılan artış hareketinden farklı olarak, recompose()
yöntemi tarafından yapılan değişiklikler mutlak değişikliklerdir. recompose()
yöntemi, matris dönüştürmesinin üzerine yazar.
Mutlak bir üst başvuru karesiyle matrisin dönüştürmesini değiştirmek için decompose()
yöntemiyle ayarları alın ve uygun değişiklikleri yapın. Ardından, recompose()
yöntemini kullanarak değiştirilmiş dönüştürmeye Matrix3D nesnesini ayarlayabilirsiniz.
recompose()
yönteminin parametresi, dönüştürme için kullanılan yönlendirme stilini belirtir. Varsayılan yönlendirme eulerAngles
olup bu, her eksen için ayrı dönüş açısına sahip bir yönlendirmeyi tanımlar. Dönüşler art arda gerçekleşir ve birbirinin eksenini değiştirmez. Görüntüleme nesnesinin axis rotation özellikleri, Euler Angles yönlendirme stili dönüştürme gerçekleştirir. Diğer yönlendirme stili seçenekleri arasında axisAngle
ve quaternion
yer alır. Axis Angle yönlendirmesi, yönlendirmeyi belirlemek için bir eksen ve açı kombinasyonunu kullanır. Etrafında nesnenin döndüğü eksen, bir yönü temsil eden birim vektörüdür. Açı, vektör etrafındaki dönüşün büyüklüğünü temsil eder. Ayrıca yön, görüntüleme nesnesinin nereye baktığını ve açı da hangi tarafın yukarıda olduğunu belirler. appendRotation()
ve prependRotation()
yöntemleri Axis Angle yönlendirmesini kullanır. quaternion yönlendirmesi, karmaşık sayıları ve vektörün dördüncü öğesini kullanır. Yönlendirme, üç dönüş ekseni (x,y,z) ve bir dönüş açısıyla temsil edilir. interpolate()
yöntemi kuaterniyon yönlendirmesini kullanır.
Parametreler
components:Vector.<Vector3D> — Matrix3D nesnesinin çevirme, döndürme ve ölçek öğelerini değiştirecek üç Vector3D nesnesinden oluşan bir Vector.
| |
orientationStyle:String (default = "eulerAngles ") — Matris dönüştürmesi için kullanılan yönlendirme stilini belirleyen isteğe bağlı bir parametre. Üç tür yönlendirme stili vardır: eulerAngles (sabit EULER_ANGLES ), axisAngle (sabit AXIS_ANGLE ) ve quaternion (sabit QUATERNION ). Farklı yönlendirme stilleri hakkında ek bilgi almak için geom.Orientation3D sınıfına bakın.
|
Boolean — components Vektörünün herhangi bir Vector3D öğesi bulunmuyorsa veya null ise false döndürür.
|
İlgili API Öğeleri
transformVector | () | yöntem |
public function transformVector(v:Vector3D):Vector3D
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Vector3D nesnesini bir alan koordinatından diğerine dönüştürmek için dönüştürme matrisini kullanır. Döndürülen Vector3D nesnesi, dönüştürmeden sonra yeni koordinatları tutar. Çevirme de dahil olmak üzere tüm matris dönüştürmeleri Vector3D nesnesine uygulanır.
transformVector()
yönteminin sonucu bir görüntüleme nesnesinin konumuna uygulandıysa, yalnızca görüntüleme nesnesinin konumu değişir. Görüntüleme nesnesinin döndürme ve ölçek öğeleri aynı kalır.
Not: Bu yöntem, iletilen Vector3D öğesinin w bileşenini otomatik olarak 1.0 şeklinde ayarlar.
Parametreler
v:Vector3D — Dönüştürülecek koordinatları tutan Vector3D nesnesi.
|
Vector3D — Dönüştürülen koordinatlara sahip bir Vector3D nesnesi.
|
İlgili API Öğeleri
transformVectors | () | yöntem |
public function transformVectors(vin:Vector.<Number>, vout:Vector.<Number>):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Number öğelerinden oluşan bir Vector öğesini bir koordinat alanından diğerine dönüştürmek için dönüştürme matrisini kullanır. tranformVectors()
yöntemi, vin
Vector nesnesindeki her üç Number öğesini 3B bir koordinat (x,y,z) olarak okur ve dönüştürülen 3B koordinatı vout
Vector nesnesine yerleştirir. Çevirme de dahil olmak üzere tüm matris dönüştürmeleri vin
Vector nesnesine uygulanır. 3B bir nesneyi kafes olarak oluşturup dönüştürmek için transformVectors()
yöntemini kullanabilirsiniz. Kafes, nesnenin şeklini tanımlayan köşelerin bir koleksiyonudur.
Parametreler
vin:Vector.<Number> — Her üç Number öğesinin dönüştürülecek 3B koordinat (x,y,z) olduğu bir Numbers öğelerinden oluşan Vector öğesi.
| |
vout:Vector.<Number> — Her üç Number öğesinin dönüştürülen 3B koordinat (x, y, z) olduğu bir Numbers öğelerinden oluşan Vector öğesi.
|
İlgili API Öğeleri
transpose | () | yöntem |
public function transpose():void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5 |
Geçerli Matrix3D nesnesini satır ve sütunların değiştirildiği bir matrise dönüştürür. Örneğin, geçerli Matrix3D nesnesinin rawData
öğesi, 1,2,3,4,11,12,13,14,21,22,23,24,31,32,33,34
olan 16 sayıyı içeriyorsa transpose()
yöntemi her dört öğeyi bir satır olarak okur ve satırları sütunlara dönüştürür. Sonuç, şu sayıların rawData
öğesini içeren matristir: 1,11,21,31,2,12,22,32,3,13,23,33,4,14,24,34
.
transpose()
yöntemi, geçerli matrisi sırası değişen bir matrisle değiştirir. Geçerli matrisi değiştirmeden bir matrisin sırasını değiştirmek isterseniz, ilk olarak clone()
yöntemini kullanarak kaynak matrisi kopyalayın ve sonra kopyaya transpose()
yöntemini uygulayın.
Dikey bir matris, sırası değişmiş hali, ters çevrilmiş haline eşit olan bir kare matrisidir.
Tue Jun 12 2018, 01:09 PM Z