Üç Boyutlu Simülasyon Optimizasyonu

Trigonometrik Fonksiyonların Çağrılmasını Azaltmak
Üç boyutlu Simülasyon geliştirilirken dairesel şekillerin çizilebilmesi için trigonometrik fonksiyonlar olan sinüs, cosinüs gibi fonksiyonlar kullanılır. Projemizde gerçek zamanlı simülasyon kullandığımız için her eğim açısı değiştiğinde çizimler tekrar tekrar gerçekleştiğinden dolayı trigonometrik fonksiyonlar da tekrardan çalışmaktadır.

Bu şekilde çalışan sistem son derece verimsizdir. Trigonometrik fonksiyonların tekrar tekrar hesaplanması bilgisayarın işlem gücünü gereksiz yükleme yaparak yormaktadır. Ayrıca aşağıdaki resimde de görüldüğü gibi trigonometrik fonksiyonlar kullanılarak çember üzerindeki noktaların koordinatları hesaplanabilmektedir. Ancak Şekil 2 de görüldüğü gibi Daire orjine simetrik bir daire olduğu için yalnızca 1.,2.,3. Veya 4. Bölgelerden yalnızca birinin hesaplanması durumunda diğer bölgelerin hesaplanmasına ihtiyaç duyulmamaktadır. Bunun nedeni daire simetrik bir daire olduğu
için diğer bölgelerdeki dairenin koordinatları daha verimli bir şekilde simetriği alınarak hesaplanabilmektedir. Ayrıca seçilen bölgedeki trigonometrik hesaplamalar program başlamadan önce yapılıp bir değişkende tutulursa simülasyon çalışmaya başladığında tekrar tekrar hesaplanmasına gerek kalmayacak ve program çok daha verimli bir şekilde çalışacaktır.
Başlangıçta Hesaplanan Trigonometrik Fonksiyonlar
3D simülasyon model uydunun roket ile fırlatıldığında ve yere inerken ki duruş bilgisini bize simülasyon ortamında gösterir uydu kendi etrafında dönüyorsa veya

istenmeyecek şekilde yalpalıyorsa Yer istasyonu arayüzü sayesinde bunun takibini yapabilir ve bu problemleri düzeltmek için aktif iniş sistemi gibi bileşenleri gözden geçirebiliriz. Yer istasyonu yazılımı açıldığı zamanda haberleşme sistemi gibi sistem bileşenleri çalışır durumda olmayacağı için bilgisayarın işlemcisi yük altında olmayacaktır. 3D simülasyon için çizimlerin yer istasyonu yazılımı açıldığında, trigonometrik hesaplamaları bir kere yapmasında sakınca yoktur.
Algoritma
Yazılım çalıştırıldığında Yapılan trigonometrik hesaplar kayıt edildiği için daha sonrasında haberleşme sistemi çalıştırıldığında tekrar tekrar sistemi yoracak trigonometrik hesaplar yapılmadan sadece hafızadan çağrılarak sistem optimize edilmiş olur. Örnek Kod:

Şekil 3 de gördüğünüz gibi dizi tanımlandıktan sonra çember çizmek için kullanılan trigonometrik hesaplamalar uygulama açılır açılmaz, diziye kayıt ediliyor. gyro sensöründen gelen verilere göre simülasyon çizdirilirken işlemciyi yoran trigonometrik hesaplamalar tekrar tekrar hesaplanmak yerine hafızadan çağrılıyor. Hazır çizim üzerinde gyro sensöründen gelen pitch,Roll,Yaw döndürme değerleri ile döndürme işlemi gerçekleştiriliyor.