Sayfalar

3 Aralık 2010 Cuma

AS2 Calışmaları 02 - Kodlarla Çizim

 Ayşen Hoca'nın derste gösterdiği bir örneğin nasıl olabileceğini düşündükten sonra bu örneği geliştirdim. Bir noktası haricinde hepsi kolay ama o noktayı bulmam benim için zahmetli olmuştu. O da çokgen çizim kısmıydı. Bunu teoride yapsam da kodlara dökemiyordum ama sonunda biraz da deneme yanılmayla olayı çözdüm.


this.createEmptyMovieClip("sekil_mc",this.getNextHighestDepth());
sekil_mc.createEmptyMovieClip("ciz_mc",this.getNextHighestDepth());


ilk önce kodlar yardımıyla sekil_mc adlı bir movieClip oluşturdum, daha sonrasında bu yeni oluşturduğum movieClip içerisine de kodlar aracılığıyla ciz_mc adlı bir movieClip oluşturdum. Şimdi neden böyle iki movieClip tercih ettiğimin sorusuna da tercih meselesi desem çok da abes kaçmaz sanırım zira tek bir moveiClip'de de toplanabilirdi olaylar ancak ben ilk movieClip'de temel fonksiyonları yönetirken (position, rotation, alpha, scale gibi) ikinsi yani ciz_mc'de ise çizilecek olan çokgeni yönetmiş oldum. Zaten menüdeki bu kaydırma çubuklarından köşe haricindeki tüm değişkenler sekil_mc'nün o andaki özelliklerini değiştirmeyi amaçlamakta. Köşe değişkeni de ciz_mc'nin köşe sayısını belirlemede işe yaramakta.

for (i=0; i<kose+1; i++)
{
        sekil_mc.ciz_mc.lineTo(
               xbas-r*Math.sin((i*derece)*(Math.PI/180)),
               ybas+r*Math.cos((i*derece)*(Math.PI/180))
        );
}

Yukarıdaki kod satırında görüleceği üzere şekil_mc'nin içerisindeki ciz_mc'de  belirlenen köşe sayısı kadar döngü kurulması söyleniyor.xbas pozisyonu ile ybas pozisyonunda bulunan şekilden r yarıçapı kadar uzak mesafedeki konuma geçip çizime başlanıyor. X'in sinüs değeri Y'nin de cosinüs değerini tercih etmişim. Çok da bi fark yok açıkcası başlangıç yönünün değişmesinden başka. Ancak hem X hem de Y için aynı değerler kullanılmamalıdır yani X için sin ve Y için sin veya X için cos ve Y için cos birliktelikleri tercih edilmemelidir zira istenmeyen sonuçlar meydana gelir bu durumda. Dairesel bir hareket için konumlardan birinin zıt trigonometrik özelliklere sahip olması gerekir ( sin-cos veya cos-sin gibi ). Derece değişkeni de 360/kose'nin matematiksel sonucuna eşittir yani o kadarlık bir dereceyle hareket etmesi sağlanmaktadır.

Denemek için tıklayınız.

Hiç yorum yok:

Yorum Gönder