3D-SÜPER GRAFİK

Program dökümü: 3D-SUPERGRAFIK, CISIM1, CISIM2, CISIM3, CISIM4, 3D-2

Bu seferki programımız biraz da teknik ressamlarımızı ilgilendiriyor. Ayrıca matematiğin grafik konusuna meraklı, özellikle üç boyutlu grafiklerle ilgilenen okuyucularımız da bu programı oldukça ilginç bulacaktır.

Konumuz, yuvarlak hatları olmayan 3 boyutlu cisimlerin uzay içinde çizimleri. Yani cisimi bir kez tanımladıktan sonra, gerek cismi, gerekse gözlerinizin uzaydaki koordinatlarını değiştirebilir, cismi üç değişik koordinat ekseni çevresinde döndürebilir ve çizimi sizin belirttiğiniz bir kaçış noktasına göre çizdirebilirsiniz. Program, isterseniz yaptığı hesaplamaların sonucunda bulduğu yeni koordinatları size bir liste halinde de verebilir. Ve sıkı durun... Çizim sırasında, eğer isterseniz, cismin arka tarafında kalan ve ön taraftaki yüzeyler nedeniyle görünmemesi gereken yüzey kısımları, program tarafından otomatik olarak hesaplanıp çizilmeyecektir. Örnek çizimlerimiz bunu size çarpıcı bir biçimde gösterecektir. Programlamayla çok ilgilenen kişiler, bunun ne kadar zor bir işlem olduğunu anlayacaklardır.

Öncelikle belirtelim, programımız profesyonel bir program olduğu için disk sürücüsü kullanmaktadır. Ancak kaset kullanan ve programlama konusunda biraz tecrübeli olan okuyucularımız, programda geçen disk sürücüsüne ilişkin komutları Datasette'ye göre ayarlayabilirler. Kasetteki program sırası 3D-SÜPERGRAFİK, 3D-1, 3D-2 olmalı.

Şimdi programın nasıl kullanılacağını görelim. Programın dolması bittikten sonra karşınıza bir menü çıkacaktır. Yeni bir cisim tanımlamak için önce "veri girişi" başlığını seçmeniz lazım. Burada cismin köşe noktalarını ve hangi köşelerin hangi alanları oluşturduğunu tanımlayacağız.

Kaç tane nokta olduğu sorusuna, tanımlamak istediğimiz üç boyutlu cismin köşe sayısıyla cevap vermelisiniz. Örneğin kübün 8, kare piramitin 5 köşesi olması gibi. Sonra da sırayla bu köşelerin koordinatlarını gireceksiniz. Bu işlemi yapmadan önce, cisminizi kağıt üzerinde kabaca çizip köşelerini numaralamanızı tavsiye ederiz. Bu, daha sonra alanları da tanımlamanızda yardımcı olacaktır. Ayrıca köşe koordinatlarını da kağıt üzerinde belirlemelisiniz.

Koordinatları girerken, önce X, sonra Y, sonra da Z koordinatını vermeniz gerekiyor. Z koordinatını verdikten sonra, bilgisayar son verdiğiniz koordinatların doğru olup olmadığını soracaktır. Eğer hata yapmışsanız, bu soruya H ile cevap verin ve en son noktanın koordinatlarını yeniden girin. Eğer hatanız yoksa, E tuşuna basmadan bir sonraki noktanın X koordinatını yazmaya başlayın. Bilgisayar otomatik olarak bir sonraki noktanın koordinatlarını okumaya başlayacaktır. Koordinat sistemi aşağıda görüldüğü gibi olacaktır.

X, Y ve Z koordinatlarını verirken çok büyük sayılar vermeniz gerekmez. Bilgisayar, verdiğiniz koordinatları sadece cismin biçimini saptamak için kullanmaktadır. Büyüklüğünü veya ekrandaki yerini etkilemez. Her cisim, ekranı maksimum düzeyde dolduracak şekilde çizilecektir.

Örnek olarak şu koordinatları kullanabilirsiniz: (Köşe sayısı 8)

Köşe 1: 1,-1, 2 Köşe 2:-1,-1, 2 Köşe 3:-1, 1, 2 Köşe 4: 1,0.5, 2 Köşe 5: 1,-1,-2 Köşe 6:-1,-1,-2 Köşe 7:-1, 1,-2 Köşe 8: 1,0.5,-2

Sonuç, biraz çarpılmış bir dikdörtgenler prizması olacaktır.

Son köşeyi de verdikten sonra herhangi bir tuşa basın ve alan sayısını belirtin. Her alan, en fazla 8 köşeden oluşabilir. Bu arada dikkat etmeniz gereken şey, her alanın içine çökmemiş bir alan olması gerekliliği. Aşağıdaki örnekler bu durumu daha iyi gösterecektir:

Alanları belirtirken, o alanın etrafını belirleyen çizginin hangi köşelerden geçtiğini vermemiz yeter. Örneğin bir karenin çevresinde 1,2,3,4 numaralı köşeler varsa, kareyi çevreleyen çizgi 1,2,3,4 numaralı köşelerden geçecektir. Böyle verilecek bir kenarın bilgisayar için anlamı, 1'den 2'ye, 2'den 3'e, 3'ten 4'e, 4'ten 1'e çizgi çiz olacaktır.

Eğer bir yüzey 8'den daha az köşeyle çevreleniyorsa, örneğin 4, bu durumda beşinci nokta yerine sıfır vermeniz gerekiyor. Her yüzeyden sonra sorulacak "Doğru mu?" sorusuna ya H ile cevap verin, ya da bir sonraki yüzeyi tanımlamaya geçin; tıpkı daha önce köşeleri tanımlarken olduğu gibi.

Demin verdiğimiz, örneğin yüzey tanımları da şöyle olacaktır: (6 yüzeyli)

Alan 1:1,2,3,4,0 Alan 2:5,6,7,8,0 Alan 3:1,5,8,4,0 Alan 4:2,6,7,3,0 Alan 5:3,7,8,4,0 Alan 6:1,2,6,5,0

Peki, içine çökmüş yüzeyleri veya sekiz köşeden fazlasını nasıl tanımlayacaksınız?... Bunun için de bir yöntem var. Bu sefer içine çökmüş veya çok büyük gelen alanları daha az köşeli ve içine çökmemiş alanlara parçalayacağız.

Örneğin aşağıdaki gibi:

Ancak bu sefer de ortaya aslında olmaması gereken çizgiler çıktı. Ama bu çizgilerin çizilmesini de sağlayabilirsiniz. Diyelim ki bir yüzeyi 1,2,3,4,5 ile tanımladınız, ancak 2'den 3'e giden çizginin çizilmesini istemiyorsunuz. Bu durumda 3'ün arkasına bir 'L' harfi eklemeniz yeterli. Yani yüzeyi tanımlarken 1,2,3L,4,5 vermelisiniz. Aşağıda da bir örnek göreceksiniz.

Cisminizi tanımladıktan sonra onu diskete depolayabilirsiniz. "Veri kaydetme" ile o anda tanımlanmış olan cisim ile ilgili tüm gerekli verileri diskete geçirebilirsiniz. "Veri yükleme" ile de daha önceden tanımladığınız bir cismi yeniden bilgisayara yükleyebilirsiniz. Her iki işlem sırasında da dosya adı yerine @ işaretini yazarak ana menüye geri dönebilirsiniz. S ile de disketteki cisim dosyalarının adlarını öğrenebilirsiniz. Dosya adının önüne bilgisayar tarafından "3D-" eklenecektir. Bu nedenle, dosya adını verirken ilk üç harfinin "3D-" olmamasına dikkat edin.

Ve tabii ki programın en önemli kısmı, çizimlerin yapılmasıdır. Önce cismin her üç eksen etrafında kaç derece dönmesi gerektiğini vermelisiniz. Vereceğiniz pozitif açılar, cismi aşağıda belirtilen yönlerde döndürecektir, negatif açılarsa ters yönde döndürecektir.

Eğer arkada kalan yüzeylerin görünmesini istemiyorsanız "Öncelik hesabı" sorusuna evet diye cevap verin. Ancak size tavsiyemiz, önce bu işlemi yapmadan çizimi bitirip, sadece sonucu beğendiğinizde bu işleme başvurmanız. Böylece zamandan kazanırsınız.

Çizim sırasındaki derinliği, bir kaçış noktası tanımlamak sağlayacaktır.

Çizim sırasında iki grafik ekranı kullanılmaktadır. Birincisi esas çizim için, diğeri ise yardımcı çizimler için kullanılmaktadır. F1, F3 ve F5 tuşlarını kullanarak, bu iki grafik ekranı ile normal yazı ekranı arasında geçiş yapabilirsiniz. DİKKAT!!! Bu tuşları disket işlemleri sırasında kesinlikle kullanmayın!

Çizim bitince, eğer isterseniz bitmiş çizim üzerinde bazı ufak değişiklikler yapabilirsiniz. Bunun için bu basit bir grafik editörü program içinde yer almaktadır. Ekrandaki ufak artı işaretini Joystick-2 ile oynatabilirsiniz. Ateş tuşu ile nokta koyma veya silme gerçekleşir. Eğer 'S' tuşuna basarsanız ateş tuşu silme işlemi yapacaktır. 'C' tuşu ise çizgi çizmeyi başlatacaktır. 'B' (Bitir) tuşu ile ana menüye geri dönebilirsiniz.

Bu arada, programın bir satırında ufak bir değişiklik gerekmekte. 116 numaralı satırdaki GOTO komutundan önce şu komutu ekleyin:

POKE V+16,((X+13) AND 256)/256

Eğer programı RUN/STOP tuşu ile keserseniz, hemen GOTO 6 ile başlatabilirsiniz ve daha önceden tanımladığınız cisim kaybolmaz. Size ayrıca, CİSİM1-CİSİM4 adlarında dört ayrı program daha sunuyoruz. Bu programları yazdıktan sonra disk sürücüsüne bir disket takın ve sırayla bu programları çalıştırın. Diskette dört yeni dosya oluşacaktır ve bu dosyalar bu sayfalarda gördüğünüz örnek grafikleri tanımlayan değerleri içerecekler. Daha sonra bu yeni dosyaları kullanarak cisimleri bilgisayara yükleyebilirsiniz. Elde edeceğiniz sonuçlardan memnun kalacağınızı umit ederiz...

Bu yazıdaki programlar

Dergideki dökümlerden çıkarıldı; satırlar derginin kontrol toplamlarıyla doğrulandı ve programlar VICE emülatöründe denendi. Tarayıcıdaki C64'te çalıştırabilir, indirip bir emülatöre sürükleyip bırakabilir ya da gerçek bir C64'te LOAD "AD",8,1 ile yükleyebilirsiniz. "Sorun bulundu" yazanlarda bazı satırlar okunamadı ya da tutmadı; düzeltilmiş bir sürümünüz varsa contact@coze.org adresine gönderin.