Flash ve Matematik - math.sin(); ve math.cos();
Yağız Gürgül Tarih: 20/05/2007 Yorum: 1 adet
Okunma : 449 Tutanlar: Bu yazıyı 0 kişi tuttu.
Adobe Flash ve ActionScript ile gerçek hayatta karşılaştığımız tüm fiziksel ve matematiksel olayları simule edebilirsiniz. Bu makale matematik, fizik gibi alanlarla ilgilenen öğrenci ve hocalarımızın umarım ilgisini çekecektir. Matematikte trigonometri derslerini hatırlarsanız sin ve cos’u da hatırlarsınız.
Trigonometrik fonksiyonlarda sinüs birim çemberdeki x düzlemini, cosinüs ise birim çemberdeki y düzlemini ifade eder.
Yani bir açının sin ve cos degeri aslında birim çember üzerinde bir noktadır. İsterseniz daha fazla somutlamak için aşağıdaki resme bakalım.
Yeni bir flash dökümanı açın ve şu kodu yazın:
Kod:
var aci:Number = 0;
onEnterFrame = function() {
aci+=0.1
trace(Math.sin(aci))
}
Bu kodumuzda ilk başta açı değişkenini sıfırlıyoruz. Ardından döngüye sokup sürekli arttırıyoruz ve bu degeri Math.sin() içine giriyoruz.
Matematiksel olarak 400’de bir derecedir. 400-360=160 derece olur. Bu yüzden Math.sin sürekli artan bir aci degerini aslında hep 0 ile 360 sayıları arasında gezdirir.
Test ettiginizde en yüksek: 0.9 en düşük -0.9 degerini alrısınız. Yani bu Math.sin() kodu sürekli 0.9 ile -0.9 arasında gidiyor.Birim çember oldugu için.. Yani tam olarak:
Kod:
Math.sin()*1;
Buradaki 1 degeri birim çemberdir.
Bu kadar öğrendigimizle bir topu x ekseninde gidip götürelim. Ortama bir daire çizin ve bunu movieclip yapın. Bunun instance name = top_mc olsun.
Frame kodunuz:
var aci:Number = 0;
onEnterFrame = function() {
aci+=0.1
top_mc._x=(Math.sin(aci)*100)+Stage.width/2;
}
Şimdi bu kodumuz:
(Math.sin(aci)*100)
100 ile -100 arasında gidecek. Yani artık birim çemberde değil *100 çemberinde oluyor.Yani aralık degeri büyüyor.
Eger Stage.width/2 eklemezsek movieclip sola dayalı olacaktır. O yüzden bu kodumuz ekleyerek topumuzu sahnenin ortasına getiriyoruz.
Bundan sonra frame kodumuz:
var aci:Number = 0;
onEnterFrame = function() {
aci+=0.1
top_mc._x=(Math.sin(aci)*100)+Stage.width/2;
top_mc._y=(Math.cos(aci)*100)+Stage.height/2;
}
Gördügünüz gibi tüm kodu y eksenine cos ile bağladık.Topumuz artık dönüyor.
Bundan sonra frame kodumuz:
var acix:Number = 0;
var aciy:Number = 0;
onEnterFrame = function() {
aciy+=0.2
acix+=0.1
top_mc._x=(Math.sin(acix)*150)+Stage.width/2;
top_mc._y=(Math.cos(aciy)*50)+Stage.height/2;
var c:MovieClip = _root.createEmptyMovieClip("cizgi",1);
c.lineStyle(1,0x00000);
c.moveTo(Stage.width/2,0);
c.lineTo(top_mc._x,top_mc._y);
}
Evet bu kodumuz biraz daha karışık. Öncelikle bu kodumuzda sin ve cos açılarını farklı kullandık. y acisini biraz daha hızlı arttırıyoruz. Böylece y kordinatında daha hızlı ileri geri gidiyor ve böylece topumuz yarım daire ilerliyor.
İşte bu noktada hayal gücünüz devreye giriyor? Yani sadece ileri geri giden bir şeyle ne yapılır ki?
Yukardaki kod ile sallanan bir top yapmış olduk.Evet aslında elimizde olan tek şey ivmeli şekilde değişen sayı aralıkları.
Umarım yeterince açıklayıcı olmuştur… Kolay gelsin…
Haber
MMIstanbul Adobe UG
ColdFusion, Flex, AIR, Flash, PDF, Dreamweaver, Fireworks, Photoshop, Illustrator, iNdesign, Premiere, Soundbooth, Lightroom, InCopy, JRun, LiveCycle, Acrobat, AfterEffects, Resmi Adobe Kullanıcı Grubu.
Etkinlikler
Fuar
CeBIT 2008 Bilişim Eurasia 7 - 12 Ekim 2008' de
CeBIT 2008 Bilişim Eurasia 7 - 12 Ekim 2008' de
CeBIT Bilişim Eurasia bu yıl 7 – 12 Ekim tarihlerinde düzenleniyor
Adını dünyanın en büyük on fuarı arasına yazdırarak, İstanbul’u Avrasy...
Kategori: Fuar
Kimler Burada? 
Son 1 dakika içinde MMIstanbul' da 528 (2 kayıtlı, 526 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:
MMIstanbul Blog'undan
Neler Yapılabilir?
Yeni bir portal, 30 civarında online / offline etkinlik, seminer vb rağmen MMIstanbul sanıyoruz ki halen hakettiği ilgiyi göremedi. " ...
500 Hatası Hakkında!
Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)
Ne Nedir Kampanyası Başlıyor!
Çok Merak Edenler için; MMIstanbul Geliştirme Ekibi ve Çalışma Ortamımız





yaa bu matematik niye heryerde benim peşimden geliyo :D trigonemetriden 0 almıştım bu benim Flash öğrenmeme etki edermi :D