Üç Boyutlu Simülasyon Optimizasyonu

Üç 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.

Şekil-1

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

Şekil-2

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

Ş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.

Kaynak Kodlar İçin Tıklayın

Fatih Furkan Çambel

Hello, I enjoy sharing when I learn something.

Leave a Reply

Your email address will not be published. Required fields are marked *