Program Döküm Eki sayı 2, sayfa 10

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 10

Şimdi de ayrı ayrı iki BASIC programını yazın ve kaydedin. Bu iki programdan birini çalıştırmak istediğinizde, önce LOAD "3D-GRAFİK",8,1 veya LOAD "3D-GRAFİK"1,1 ile disketten veya kasetten ana programı yükleyin. NEW komutunu verdikten sonra da iki BASIC programdan birini yükleyip RUN ile çalıştırın.

Her iki programın da 110. satırında bir fonksiyon belirlenmiştir. Eğer yeni bir fonksiyon çizdirmek istiyorsanız, ilk soruya çizdirmek istediğiniz fonksiyon ile cevap verin. Eğer fonksiyon vermek istemiyorsanız, sadece (RETURN) tuşuna basın. Bu durumda 110. satırdaki fonksiyon çizilecektir.

Bundan sonra, her iki program da ihtiyacını duydukları bazı sayıları sizden isteyecektir. Önceden yazılı olan değerleri kabul ediyorsanız sadece [RETURN] tuşuna basın. Eğer yeni değerler vereceksiniz, ekrana çıkan sayıların üzerine yazabilirsiniz. Şimdi de bu değerlerin hangi anlamlara geldiğini, her program için ayrı ayrı görelim.

Bu programın yaptığı işlem, XY-sisteminde çizilen bir fonksiyonu Y-ekseni etrafında döndürerek oluşan cismin 3 boyutlu görüntüsünü çizmek. Bunun için, çeşitli açıları ve bazı maksimum değerleri belirlemeniz gerekiyor.

İlk vereceğiniz değer, dönme açısı. Bu açı ile vereceğiniz değer şu anlama gelecektir. Şimdi önümüzdeki kağıda aşağıdaki gibi bir koordinat sistemi çizdiğimizi düşünelim: (X ve Y eksenlerinin yer değiştirdiğine dikkat edin!)

Eğer dönme açısı için -45 ile 90 arasında değişen değerler verirseniz, koordinat sistemimiz de aşağıdaki sınırlar arasında dönecektir:

Bakış açısı ise sizin gözünüzün, cisime kaç derece açı ile baktığınızı belirleyecektir. 0 verdiğinizde cisime tam karşıdan, 90 verdiğinizde de tam tepesinden bakmış olursunuz.

Çizgi sayısı ile de, oluşacak grafiğin sağ ve sol kenarları arasında kalan uzaklığın kaç çizgi ile temsil edilmesi gerektiğini belirleyebilirsiniz. Bir başka deyişle, fonksiyonun değerinin kaç adımda hesaplanması gerektiğini belirtmiş olursunuz. Bu değer en az 3, en fazla da 60 olabilir. Görünüş olarak en iyi değerler 10-30 arası değerlerdir.

Maksimum X değeri, çizimin yapılacağı aralığı belirler. Örneğin bir sinüs grafiği çizdireceksiniz ve maksimum X değeri olarak 5 vermişseniz, bilgisayar 0 ile 5 arasındaki fonksiyon değerlerini hesaplayarak çizimi yapar.

Artık çizim için gereken hesaplamalar başlamıştır. En fazla 5 dakika içerisinde çizimin yapılışını görürsünüz. Bu arada ufak bir şey belirtelim. Eğer bu programın çizim ve hesaplamaları BASIC ile yapılmış olsaydı, en basit grafiğin çizimi bile en az 6 saat sürerdi.

Şimdi kareli kağıdın üzerinde bir alan belirlediğimizi düşünelim. Öyle ki, bu alan aşağıdan yukarıya örneğin -5,5 arasında Y-değerlerini temsil etsin; soldan sağa da -10,10 arasındaki X-değerlerini. Şimdi kesişen her dikey ve yatay çizginin temsil ettiği X ve Y değerini elimizdeki fonksiyonun içine oturtarak (örneğin Z=SIN(X)*COS(Y)) bir Z değeri elde edelim. Daha sonra da Z kadar yüksekliğe sahip bir çubuğu bu kesişim noktasına dikelim. Bu işlemi belirlediğimiz alandaki her kesişim noktası için tekrar edelim. En sonunda da dikdiğimiz çubukların tepe noktalarını çizgilerle birleştirerek bir file görüntüsü elde edelim. İşte bu, seçtiğimiz iki değişkenli fonksiyonun 3-boyutlu grafiğidir.

Bu programda da önce dönme açısı ile bakış açısını vermeniz gerekiyor. Diğer değerler de rotasyon programdakilerle benzeşmekte. Ancak şimdi X ve Y eksenlerinin her biri değişken olduğundan daha fazla değer belirlemeniz gerekiyor.

X ve Y yönündeki çizgi sayısı ile, yukarıda olduğunu varsaydığımız alanın sağdan sola ve yukarıdan aşağı olan çizgi sayılarını saptayabilirsiniz.

Daha sonra da, yukarıda -5,5 ve -10,10 olarak örnek verdiğimiz sınırları kendi fonksiyonunuz için belirleyebilirsiniz.

Artık hesaplamalar başlayacaktır. Ancak bu seferki hesaplamalar, rotasyon programına biraz daha uzun sürecektir. Çünkü hesaplanması gereken daha çok değer vardır.

Her iki program da çizimi bitirdiklerinde, sizin bir tuşa basmanızı bekleyecektir. Eğer sola bakan ok tuşuna basarsanız, program duracaktır. Aynı fikirle devam etmek ve değişik bir görüntüsünü çizmek istiyorsanız, R veya [RETURN] tuşlarından birine basınız. Yeni bir fonksiyon çizdirmeyi düşünüyorsanız, F tuşu ile yeni fonksiyonunuzu verebilirsiniz. Veya S tuşu ile o anda oluşturduğunuz grafiği SAVE edebilirsiniz (başka grafik programlarında kullanmak veya bir HARD-COPY programı ile bastırmak için).

Programlar, ana programdaki (3D-GRAFİK) parçalarını SYS komutları ile çağırmakta. Ancak açılar ve sınırlar gibi sizin belirlediğiniz değerler, ana programa, NN%, KK%, DD, PP... gibi değişkenler ile gönderilmektedir. Ana program önce bu değişkenlerdeki değerleri okumakta ve buna göre işlemlerini yapmakta. Bu nedenle, programda kullanılan değişken adlarını değiştirmemeniz gerekiyor.

Fonksiyonları verirken, fonksiyonlardaki tanımsız noktalar bulunmamasına dikkat edin. Örneğin bir sayıyı sıfıra bölmek veya eksi bir sayının karekökünü veya logaritmasını almak gibi. Bu gibi durumlarda, bilgisayar kilitlenecektir. Eğer hesaplama 5 dakikadan uzun sürerse, RUN-STOP/RESTORE tuşları ile programı durdurup, 110. satırı kontrol edin. Bir örnek verelim: Z=LOG(X*X+Y*Y) fonksiyonu, X ve Y sıfır olduğu zaman, tanımsız olan LOG(0) işlemini yapacaktır ve bu da C64'ün kilitlenmesine yol açacaktır.

Klavyeyle gezinmek için ← ve → tuşları.