‘Dizayn’ Kategorisi için Arşiv

Önsöz

Salı, 06 Kasım 2007

ÖNSÖZ

İki binli yıllara girdiğimiz şu günlerde artık insanlık kabına sığmamakta ve mevcut dünya insanlara dar gelmektedir. Bilgisayarlar artık, bir iletişim aracı olarak, sanal bir dünya oluşturmuş bulunmaktadırlar. Meydana gelen bu sanal ortamda cisimlerin temsili ise başlı başına bir sektör haline gelmiştir. İlk başlarda iki boyutlu olan bilgisayar görüntüleri, bir takım geometrik ve fiziksel hesaplamalarla üçüncü boyut, yani Z ekseni eklenerek üçboyutlu görüntüler haline getirilmişlerdir. Bu işlem yapılırken iki boyutlu bir ortam olan monitör üzerinde sanal olarak bir üçüncü eksen tanımlanmıştır.

Bu tezin hazırlanmasında konular kolaydan zora doğru düzenlenerek anlaşılması kolaylaştırılmıştır. Soyut olan ifadeler, konu içerisinde yer alan ilgili grafiklerle ve tezin sonunda yer alan örnek programla somutlaştırılmıştır. Programın hazırlanmasında herkesçe bilinen pascal dili tercih edilmiştir.

TEŞEKKÜR

Tezin hazırlanması aşamalarındaki yardımlarından dolayı tez danışmanım Doç.Dr. Abdullah ÇAVUŞOĞLU’na, araştırmalarımdaki desteğinden dolayı meslektaşım Mehmet ÇAKIR’a, değerli fakülte hocalarıma ve sınıf arkadaşım Ahmet Erkan ÇELİK’e teşekkürü bir borç bilirim.

İÇİNDEKİLER ÖNSÖZ……………………………………… ………………………………………….. ………………… I TEŞEKKÜR…………………………………… ………………………………………….. …………….. II İÇİNDEKİLER………………………………… ………………………………………….. …………… III ÖZET………………………………………. ………………………………………….. ………………….. V ABSTRACT…………………………………… ………………………………………….. …………….. VI ŞEKİL LİSTESİ ………………………………………….. ………………………………………….. .. VII BÖLÜM-1 1 1. ÜÇÜNCÜ BOYUT 1 1.0 Giriş 1 BÖLÜM-2 2 2. ÜÇ BOYUTLU GRAFİKLER İÇİN TEMEL TANIMLAMALAR

2 2.0 Giriş

2 2.1 Geometrik Tanımlamalar 2 2.1.1 Nokta Tanımlaması 2 2.1.2 Doğru Parçası Tanımlanması 3 2.1.3 Yüzey Tanımlanması 4 2.1.3.1 Üç Boyutlu Yüzey Tanımlaması 4 BÖLÜM-3 7 3.GEOMETRİK DÖNÜŞÜM İŞLEMLERİ

7 3.0 Giriş

7 3.1 Temel Dönüşüm İlkeleri 7 3.2 İki Boyutlu Dönüşüm İşlemleri 8 3.2.1 Konum Değiştirme 8 3.2.2 İki Boyutlu Ölçeklendirme 9 3.2.3 İki Boyutlu Döndürme 9 3.2.4 Herhangi Bir Noktanın İki Boyutlu Döndürülmesi 10 3.3 Üç Boyutlu Geometri 11 3.3.1 Üç Boyutlu Konum Değiştirme İşlemi 12 3.3.2 Üç Boyutlu Ölçeklendirme İşlemi 13 3.3.3 Üç Boyutlu Döndürme İşlemi 14 BÖLÜM-4 16 4.ÜÇ BOYUTLU GÖRÜNTÜ OLUŞTURMA 16 4.0 Giriş 16 4.1 Sanal Kamera (Virtual Camera) 17 4.2 Boyutlu Kesit Alma İşlemi (Clipping) 19 4.3 Ekran Üzerinde Görüntü Oluşturma 20 4.3.1 Perspektif Projeksiyon 20 4.4 Görünmeyen Yüzeylerin Kaldırılması 21 4.5 Sıralı Dizilerle Görünmeyen Yüzeylerin Kaldırılması 22 BÖLÜM-5 23 5 PROGRAM HAZIRLAMA 23 5.1 Giriş 23 5.2 Program ve Fonksiyon Gruplarının Açıklamaları 23 5.2.1 Değişken Tanımlamaları 23 5.2.2 Dönüşüm Prosedürleri 24 SONUÇ 26 KAYNAKLAR 27 EK-1 28 1.1 Program Kodu 28 1.2 Mekik.3d Dosyasının İçeriği 39 1.3 Programın Ekran Çıktısı 43 ÖZGEÇMİŞ 50

T.C. GAZİ ÜNİVERSİTESİ TEKNİK EĞİTİM FAKÜLTESİ ELEKTRONİK VE BİLGİSAYAR EĞİTİMİ BÖLÜMÜ

LİSANS TEZİ

3B GRAFİK İÇİN KAMERA SİMÜLATÖRÜ HESAPLAMALARI

ÖZET Bu tezde ilk olarak dönüşüm işlemlerinde gerekli olan matematiksel işlemler ve geometrik dönüşümler anlatıldı. İki boyutlu nesneler anlatılarak, üç boyutlu nesnelere geçiş yapıldı. Daha sonra üç boyutlu cisimlerin ekran düzlemindeki izdüşümlerinin iki ve üç boyutlu sistemlere göre dönüşümleri matematiksel olarak gerçekleştirildi. En son olarakta, teorisi anlatılmış olan üç boyutlu dönüşüm işlemleri ile üç boyutlu bir uzay mekiği modeli ekrana çizdirilerek simüle edildi.

Anahtar Kelimeler: Ekran uzayı, sanal gerçeklik(virtual realty), sanal kamera(virtual camera), döndürme(rotating), ölçeklendirme(scalling), konum değiştirme(locationchanging), boyutlu kesit alma(clipping)

2000-Haziran GAZI UNIVERSITY FACULTY OF TECHNICAL EDUCATION ELECTRONICS AND COMPUTER EDUCATION DEPARTMENT

BSC THESIS THE CAMERA SIMULATOR CALCULATIONS FOR 3D GRAPHICS ABSTRACT In this thesis, first of all I studied mathematical equalities and geometrical transformations.And then I studied two dimension objects and three dimension objects . Finally I studied projection of three dimension objects which are taked on to screen plane and studied about this objects mathematical transformation and explaned with a simple space shuttle simulation by using these formulas.

Keywords: The space of monitor, virtual realty, virtual camera, location changing, rotating, scaling, cilipping. 2000-June ŞEKİL LİSTESİ Şekil 2.1 Noktanın gösterilmesi

3 Şekil 2.2 Bir doğru parçası

3 Şekil 2.3 Üç boyutlu koordinat sisteminde yüzey gösterimi

4 Şekil 2.4 Üç boyutlu koordinat sisteminde düzlem

5 Şekil 3.1 İki boyutlu konum değiştirme

8 Şekil 3.2 . İki boyutlu Ölçeklendirme

9 Şekil 3.3 İki boyutlu döndürme

10 Şekil 3.4 İki boyutlu herhangi bir noktanın döndürülmesi

11 Şekil 3.5 Koordinat sistemleri

12 Şekil 3.6 Saat yönünün tersi yönde üç boyutlu döndürme

14 Şekil 4.3 Noktanın perspektif projeksiyonu

21 Şekil Ek.1 Mekik modelinin X ekseninde döndürülmesi

43 Şekil Ek.2 Mekik modelinin Z ekseninde döndürülmesi

43 Şekil Ek.3 mekik modelinin Y ekseninde 1800 döndürülmüş hali

44 Şekil Ek.4 mekik modelinin Y ekseninde 900 döndürülmüş hali

44 Şekil Ek.5 mekik modelinin Y ekseninde 450 döndürülmesi

45 Şekil Ek.6 mekik modelinin ilk pozisyonu

45 Şekil Ek.7 mekik modelinin Y ekseninde 200 derece döndürülmesi

46 Şekil Ek.8 mekik modelinin Z ekseninde döndürülmesi

46 Şekil Ek.9 mekik modelinin Z ekseninde döndürülmesi

47 Şekil Ek.10 mekik modelinin Z ekseninde döndürülmesi

47 Şekil Ek.11 mekik modelinin X ekseninde 900 döndürülmesi

48 Şekil Ek.12 mekik modelinin X ekseninde 1800 döndürülmesi

48 Şekil Ek.13 mekik modelinin X ekseninde 1500 döndürülmesi

49

Özet

Salı, 06 Kasım 2007

ÖZET

Ülkemizde montaj ile başlayan otomotiv sanayisi oldukça gelişmiş ve kendisi için önemli olan parçaların üretim teknolojilerinin geliştirilmesi gereğini doğurmuştur. Otomotiv sanayisi için çok önemli bir parça olan mekanik taşıt kavramasının(debriyaj) üretim ve tasarım aşamaları otomobil şanzımanlarının ve motorlarının gelişmesiyle artan ihtiyaçlar doğrultusunda her geçen gün yeni teknolojik bilgilere gereksinim duymaktadır.

Bu çalışmada günümüzde taşıtların güç iletiminde çok büyük öneme sahip olan mekanik taşıt kavramalarının(debriyaj) çalışma prensibi ve yapısı hakkındaki genel bilgilerin verilmesinin yanısıra kavrama tipleri analiz edilip karşılaştırmalar yapılarak ve ilgili tasarım parametreleri gözönünde bulunularak ticari bir araç olan Fiat Doblo 1.9 Dizel için uygun bir mekanik taşıt kavraması tasarlanıp SOLİDWORKS yardımıyla katı olarak modellendikten sonar COSMOSWORK yardımıyla ısı ve gerilme analizleri yapılarak gerekli yerlerde optimizasyon yoluna gidilmiştir.

Önsöz

Salı, 06 Kasım 2007

ÖNSÖZ

3D Studio hayatımızda çok geniş bir yer tutmaktadır . TV reklamlarında , mimari yapıların düzenlenmesinde , bilimsel örneklerin incelenmesinde , uzay simülasyonlarında ,çizgi film animasyonları , sinema ve özel efektlerde, tıbbi ve ticari alanda , hatta antropolojide bile , endüstriyel tasarımda , tiyatro sahnelerinin düzenlenmesinde ve daha bir çok alanda 3D Studio kullanılmaktadır. Bilgisayar teknolojisinin hızla ilerlemesine paralel olarak 3D Studio baş döndürü bir şekilde gelişmekte ve hayatımızda vazgeçilmez bir animatör program olarak yerini almaktadır.

Hazırlamış olduğumuz bu çalışma yedi kısımdan meydana gelmektedir. Birinci kısım 3D Studio’nun kurulması ve ayarları ile ilgili çalışmaları içermekte, ikinci kısım 2D Shaper ve 3D Lofter (iki boyutlu nesneler ve üçüncü boyuta hazırlanma aşaması) ile ilgili kavramlar ve teknikler bulunmakta, üçüncü kısımda 3D Editor’da model hazırlama komut ve tekniklerini içeriyor ,dördüncü kısımda 3D Studio’nun renk kütüphanesi ve renk eşlemelerinin hazırlandığı ve ayarlarının yapılandırıldığı bölüm, ayrıca bu bölüm gerçekçi görüntüler ve illüzyonlar oluşturma ile ilgili pratik bilgiler içermektedir, beşinci kısımda 3D Studio’da çok önemli bir yer tutan ışıklar ve kameralar hakkında temel bilgiler bulunmaktadır. Altıncı kısım Keyframer modülünü tanıtmaktadır. Yedinci kısımda 3D Studio ile yapılan bazı çalışmalar hakkında bilgi bulunmaktadır.

3D Studio’da başarılı Render’lar ve animasyonlar hazırlayabilmeniz için pek çok yeteneğin bir arada olması gerekir. 3D Studio’da farklı modeller kullanırken programda çok farklı dalların bir araya geldiğini fark edeceksiniz. Profesyonel bir animatör için modelleme , ışık , fotoğraf , resim ve öyküleme önemli becerilerdir. 3D Studio’daki çeşitli modelleme işlemlerinde size yardımcı olacak bazı teknikleri ve stratejileri tanıtmaktadır.

GİRİŞ

1990 da 3D Studio piyasaya çıktığında yeni bir çığır açtı. O zamana kadar , PC ler için var olan az sayıdaki animasyon programı ya çok kısıtlıydı yada çok pahalı , bazen de ikisi birden. 3D Studio , PC’lere makul fiyatlı profesyonel ve üretken render ve animasyonun kapısını açtı.

3D Studio programının kullanım alanları oldukça geniştir ve her geçen gün , bilgisayar performansları artı , ücretleri düştükçe kullanım alanları büyük bir hızla gelişmektedir.

3D Studio Animasyon Uygulama Alanları

Buradaki liste sonsuz değildir , ancak bilgisayar ve animasyon alanındaki uygulamalar hakkında genel bir bilgi vermeyi amaçladık

Bilgisayar Görüntülerinin ve Simülasyonlarının Kullanılması

Bazı durumlarda bilgisayar yardımıyla görselleştirme oluşturmak video kaydı yapmaktan daha makul olabilir. Bilgisayar animasyonlarının pahalıya mal olmasına ve hazırlanmaları zaman almasına rağmen , pek çok durumda alternatiflerinden çok daha ekonomik olabilirler.

Var Olmayan Sujelerin Kullanılması

Hala tasarım aşamasında olan bir mimari projenin görselleştirilmesi , veya yanmış bir binanın restorasyonunda olduğu gibi bazı durumlarda animasyonun sujesi mevcut değildir. Modelin gerçekçi bir temsilini bilgisayarda hazırlamak binayı inşa ve restore etmekten daha kolay ve basit olacaktır.

Masrafsız Maket Hazırlanması

Bazen tasarımın gözden geçirilmesi için maket hazırlanması , bir bilgisayar modeli oluşturmaktan çok daha pahalıya gelebilir. Projenin tasarımında form ve renk bakımından değişiklikler yapılacaksa onu elektronik olarak oluşturmak , maket üzerinde sürekli değişiklik yapmaktan daha masrafsız olabilir. Hareketli parçaların bilgisayarda canlandırılması çok kolaydır. Bir nesnenin iç işleyişini görmek isterseniz , normal ölçeği görmek için çok büyük veya küçük bir nesne söz konusu ise bir bilgisayar modeli gerçek bir modelden çok daha pratik olacaktır. Tahrip testlerinin bilgisayarda canlandırılması da , söz konusu nesnenin tahribatı çok masraflıysa , masrafları düşüren bir tekniktir.

Tehlikeli veya Zor Etkilerin Simülasyonu

Bazı durumlarda gerçek bir olayın film için hazırlanması çok zor veya tehlikeli olabilir. Örneğin bir nükleer bombanın bir şehri tahrip etmesini nasıl filme çekebilirsiniz ? Bir bilgisayar animasyonunu kullanmak çok daha avantajlı olacaktır. Bazı tehlikeli sahnelerin tekrar tekrar çekilmesi son derece tehlikeli olurken , bir bilgisayar animasyonu da aynı işi görebilir. Uçak simülatörleri de , Eğitimi tehlikesiz kılmakta bilgisayarın yeteneklerinin kullanılmasına bir örnek teşkil edebilir.

İnşa Süresinden Tasarruf

Bir binanın bilgisayarda inşası gerçek hayattakinden çok daha hızlıdır. Dünyanın güneş etrafındaki dönüşünü göstermek bir yıl sürer , ancak dönüşün bilgisayar görselleştirmesi ile incelenmesi sadece birkaç dakikada tamamlanabilir.

Fiziksel Olarak İmkansız Olayların ve Efektlerin Eldesi

Bir uzay savaşı veya bir su altı şehri gibi bir olayı gerçekten oluşturamazsınız , bu durumlarda bilgisayar animasyonları tek seçenektir . Bir nesnenin bir diğerine üç boyutlu olarak dönüşümü gibi olaylar gerçek yaşamda görülmez , ancak bilgisayarda oluşturulabilir. Bir nesnenin deri şeffaflığını değiştirerek içindekileri göstermekte bir diğer örnektir.

Antropolojinin İncelenmesi

Antropoloji dalı bilgisayar animasyon ve görüntülerinden büyük oranda yararlanır. uzun süre önce kaybolmuş uygarlıklara ait evlerin , tapınakların , çömleklerin ve av gereçlerinin yeniden oluşturulması , bir kaç parça ve örnek sayesinde mümkün olabilmektedir.

Şehri / Mimariyi Yeniden Oluşturmak

Buluntulardan ve çizimlerden yola çıkarak , tüm bir şehrin bilgisayarda yeniden oluşturulduğu olmuştur. Mısır piramitlerinin ve etraflarındaki tapınakların inşaa edildikleri sırada nasıl göründükleri Nilin bir kanaldan akarak tekneleri taşıması bir televizyonda yayınlandı . Bu tipte projelerin hepsi sadece bilgisayar ile hazırlanabilir.

Olayların Yeniden Oluşturulması

Bilgisayarlar , olayların nasıl meydana geldiğini gösterebilir. Bir arkeolojik kazının ortaya çıkardığı bir volkanik patlama , bilgisayarda hazırlanarak lavların akış hızı ve bir şehri yok etmesi görüntülenebilir.

Mimari Görselleştirmelerin Araştırılması

Mimari görselleştirmeler , bilgisayar Animasyonlarının en popüler olduğu alanlardan biridir. Bir mimari projenin tüm aşamalarında kullanılabilirler. Bilgisayar animasyonları mimarlık bürolarında projenin tasarımına yardımcı olmak , daha sonra da önerinin müşteriye sunulması amacıyla kullanılabilir. Artık pek çok proje için ,planlamanın şehir komisyonlarına , sunulması için görselleştirme talep edilmektedir ve ev sahipleri de tasarımın etkisini görmek istemektedir. Bir sanatçının çizimlerinden yararlanmak yerine , bilgisayar animasyonları ile projenin nasıl görüneceğini müşteri ve finansörlere göstermek çok daha etkili olmaktadır.

Kavram Modelleri

İlk kavram modelleri , projenin ana öğesini ağırlıklı olarak gösteren kaba animasyonlar olabilir. Bunlar genellikle tasarımdaki ana fikrin onaylanması için ve yanlış yönde ilerleyerek vakit kaybetmemek amacıyla kullanılır. Farklı senaryolar kolayca gözden geçirilerek değişiklikler yapılabilir.

Çizgi Film Animasyonlarının İncelenmesi

Bilgisayar animasyonları geleneksel seliloit ( cell ) animasyonu alanlarında giderek daha sık kullanılıyor. Televizyonlarda da bilgisayar animasyonları çizgi film kuşaklarında gösterilmeye başlandı ancak daha da önemlisi bilgisayar animasyonları , üst düzeyde sinema filmlerinde de yerini aldı.

Ticari Sanatın Araştırılması

Ticari sanat kategorisi , ürün büroşürlerini ,ilanları ve eğitim malzemelerini kapsar. Bu alanlarda kullanılmak üzere sunum grafiklerine büyük ihtiyaç vardır ve bilgisayar görüntüleri de bunların çoğunu karşılamaktadır.

Üç Boyutlu Metin

3D Studio da üç boyutlu metin oluşturmak pek kişi tarafından çok basit bir iş olarak görülür, ancak bu , dergi ve kitapların kapaklarında en çok tekrar baktıran etkiyi oluşturur. Bu efektle düz harflere göre çok daha ilgi çekici ilanlar hazırlanabilir. Harflere perspektifle bakılması , hiçbir fontun oluşturamayacağı etkiyi elde eder.

İki Boyutlu Düz Sanat Eseri ve Aydınlatma Değişimleri

Üç boyutlu grafikler , iki boyutlu grafiklere göre aydınlatma üzerinde çok daha büyük kontrol sağlar. Işıkların istenen konuma getirilmesi ile , bilgisayar otomatik olarak ışığın nesnelere nasıl vuracağını bulur ve tüm görüntüyü tekrar hazırlamanıza gerek kalmadan son derece etkileyici bir aydınlatma oluşturabilmenizi sağlar.

Adli Grafiklerin Anlaşılması

Adli grafikler , hukuk sistemi için hazırlanan grafik ve animasyonları kapsar. Bunlar basit plan çizimlerinden ayrıntılı görselleştirmelere kadar uzanır. Bilgisayar animasyonları , bir kazanın nasıl oluştuğunu bir parçanın nasıl düştüğünü kirliliğin nasıl yayıldığını veya bir hasarın yapısını gösterebilir.

Kazanın Tekrar Oluşturulması

Adli grafik sözünü duyan pek çok kişi , ilk olarak kazaların yeniden oluşturulmasını düşünür. Bu animasyonlar , modellemenin her aşamasında büyük dikkat harcanarak özenle hazırlanmalıdır. Bir kazanın nasıl meydana geldiğinin gösterilmesi bir dava sırasında çok önemli olabilir. Animasyon herhangi bir perspektiften gösterilebilir , buna olaya karışan kişilerin bakış açıları da dahildir. Böylece Jüri ve hakim , olaya karışanların ne gördüğünü ve neyi niye yaptığını kanıtlayabilir.

Balistik

Balistik , ateşli silahlar ve bunların ateşlenme özellikleriyle ilgilenir. Animasyon ateşlenen mermilerin konum ve geliş açılarına dayanarak bir silahın ateşlenmesini ve o sıradaki konumunu gösterebilir.

Endüstriyel Tasarımının Anlaşılması

Endüstriyel tasarım , binalar haricinde hemen her şeyin tasarımını kapsar. Tasarım ürünleri ve ürünlerin tasarımı bu sınıfa girer. Endüstriyel tasarımda bilgisayar görüntülerinden büyük oranda yararlanılır. Bunlar ürün tasarımı ve araştırması , ürün demoları , ambalaj tasarımı ve sunumu ve toplama teknikleridir.

Filmlerin ve Tv Yayınlarının İncelenmesi

Film ve TV endüstrisi üç boyutlu bilgisayar grafiklerini yıllardır kullanmaktadır. Bu sistemler iş istasyonları tabanlı olup genellikle çoğu animatörün veya animatör olmak isteyen kişinin hayallerini süslemektedir. PC’lerin ve yazılımların bu sistemlerle rekabet edecek kadar güçlendiği bu günlerde , TV’lerde her geçen gün daha fazla üç boyutlu animasyon görebiliriz.

Sahne ve Yer Kompozisyonu

Bilgisayar animasyonları , setlerin seyirci ve kameraya nasıl güveneceğini belirlemekte son derece güçlü araçlardır. ışıklandırma ve kamera konumları üzerinde etkili farklı renkler araştırılabilir.

Özel Efektler

Özel efektler , üç boyutlu bilgisayar grafiklerinin kullanılabileceği en iyi alanlardan biridir. Yıldız savaşları , Gerçeğe dönüş , Terminatör II , Ölüm kadına yakışır , Jurassic Parc ve Titanic gibi filmlerde üç boyutlu bilgisayar grafiklerinin yoğun şekilde kullanıldığı sahneler mevcuttur.

Parıltılar , Patlamalar , Dalgalar ve SXP’ler

Bilgisayarda bir binanın gerçekçi bir şekilde patlatılabilmesi , masraflı ve tehlikeli havai fişek gösterilerini ortadan kaldırır ; Bu film endüstrisi için gerçek bir nimettir.

Taşıt ve Model Animasyonu

Bir taşıtın veya modelin ( Araba , kamyon , uçak veya uzay gemisi gibi ) , hareket etmesi , çarpması veya patlaması gerçek hayatta çok pahalıdır ve tehlikelidir. Bu efektlerin bilgisayarda hazırlanması ve gerçek arka planlar üzerine oturtulması bu efektleri çok daha makul maliyetlerle elde etmenin bir yoludur.

Modellerde Pencereler ve Film İçinde Film

Rotoskop ile alınan sahneler gerçek sahnedeki nesnelere uygulanabilir. Bir aynaya veya pencereye animasyon uygunlaması , seyirciye gerçek ötesi bir şey karşısında olduğunu düşündürür. Bu efekt bilgisayarın ürettiği görüntülerin bir TV ekranında veya sinema perdesinde oynadığı izlenimi içinde kullanılabilir.

Tv Reklamları

Pek çok TV reklamında üç boyutlu bilgisayar animasyonları kullanılmaktadır. Fiyatlar düştükçe ve kalite arttıkça bunların sayısıda artacaktır.

Ürün ve Maskot Animasyonu

Reklam ürünlerinin canlandırılması ürünü en iyi ışıkta göstermekle kalmayıp , seyircide kalıcı bir iz bırakmaktadır. Bu mikroplarla çarpışan bir diş macunu tüpü olabileceği gibi , falan temizleyici ile ovulduğunda canlanan bir kuvet de olabilir. Bu tip reklamlar geç unutulur. Üç boyutlu bilgisayar grafikleri firma maskotlarını canlandırmakta da kullanılır. Ayrıca uçan yazı ve logolar reklamlarda oldukça sık kullanılan tekniklerdir.

Fotoğrafçılığın Araştırılması

Bilgisayar grafikleri , fotoğrafçıların işine değer katmak için durağan görüntülerde giderek daha sık kullanılır . Artı iki boyutlu rötuşların yanı sıra , üç boyutlu nesnelerde görüntüye kolayca eklenebiliyor.

Karmaşık veya İmkansız Kompozisyonlar Ve Işıklandırma

Bazen fotoğrafçı , normalde bir arada olmayan nesnelerin bir arada durması gibi ( Mısır piramitleriyle Empire State binasının yan yana olması gibi ) veya nesnelerin uzayda uçması gibi imkansız bir efekti isteyebilir. Karşılaşılan problemler sahnelerin gerçek hayattaki aydınlatmasından kaynaklanabilir. Genellikle bu tip sahneleri bilgisayarda oluşturulması kolaydır.

Moleküler İllüstirasyon

Moleküler görüntüler üç boyutlu bir bilgisayar sisteminde modellendirildiklerinde son derece anlaşılır olurlar. Atomik bağlar kolayca gösterilebilir ve hareket de canlandırılabilir.

Uzay Simülasyonları

Uzayda gerçekleşen olayların bilimsel görselleştirmeleri en iyi üç boyutlu bilgisayar animasyon sistemleriyle hazırlanabilir . Uzay gemilerinin kontrolü bu tip görsel geri besleme ile öğrenilebilir ve ince ayarlanabilir.

Fiziksel Temsiller

Dünyanın manyetik çekimi ve ozon tabakası gibi görünmeyen şeylerin fiziksel temsili , bilgisayarda gösterilebilir ve analiz edilebilir. Küresel ısınma etkileri ve derin okyanus akıntıları , bilgisayarın verileri görselleştirmekte kullandığı diğer alanlardır.

Teorik Kavram Ve Teorem Animasyonları ve Örnekleri

Teorik bilimin sonuçları çoğu insanlar tarafından anlaşılmaz. Verileri üç boyutlu modellere dönüştüren ve animasyon oluşturan bilim adamlarını , teorilerini diğer bilim adamlarına ve meslekten olmayan kişilere aktarmaları çok daha kolay olacaktır.

Animasyonların Tiyatroda Kullanımı

Görselleştirme tiyatroda pek çok yerde kullanılabilir. Tiyatro ve sahne doğru olarak modellendikten sonra , her sahnenin dekorları 3D Studio da hazırlanabilir sadece görsel ilginçlik açısından değil , koltuklardan gelen görüş çizgileri de kontrol edilir. Ayrıca dekor inşası ve denenmesi ve sahneleme seçenekleri bilgisayarda önceden hazırlanır ve gerekli değişiklikler yapılabilir.

Aydınlatma Seçenekleri

Dekorlar bilgisayarda modellendikten sonra , sahne ışıkları da gerçek yerlerine eklenebilir. Bilgisayarda , gerçek spotların çalıştığı gibi odaklanabilir ve renklendirilebilir. Işıklar en iyi etkiyi sağlamak için hareket eden bir kişi modelini izleyebilir ve diğer ışıklar da yönetmenin seçimine göre açılıp kapanabilir.

Sahneleme Seçenekleri

Daha aktörler provalar için gelmeye başlamadan önce pek çok sahne gözden geçirilip incelenebilir. Pek çok diğer meslekte olduğu gibi , ilk planlama ne kadar iyi olursa sonuçtaki işte o kadar iyi olur.

Bütün bu uygulamalar sınırsız değildir daha çok geliştilebilir. Fiyatların düşmesi ve bilgisayar kalitesinin artması ile 3D Studio hayatımızda daha çok yer edecekti

BÖLÜM I

3D STUDIO RELEASE 4 HAKKINDA TEMEL BİLGİLER

3D Studio Programı DOS Shell altı bir programdır. 3D Studio Programı 10 adet kur disketinden oluşmaktadır. Bilgisayarımızın sistem belleği ve disk konfigürasyonunu kontrol ettikten sonra ilk disketi takıp 3D Studio’yu yüklemeye geçebilirsiniz.

3D Studio programı grafik yoğunluğu ve matematiksel işlem hacmi yüksek olan bir program olduğundan , bilgisayar performansının yüksek tutulması çalışacağımız programın hızını olumlu yönde etkileyecektir.

3D Studio ‘nun tam kurulumu , programın çalıştırılabilir dosyası , destek ve örnek dosyalarının hepsi için minimum 23MB’lık bir disk alanı ister. 3D Studio’yu

30MB’lik boş disk alanı olan bir sisteme sıkıştırıp doğru düzgün çalışabileceğinizi düşünmeyin. 3D Studio’nun verimli kullanılabilmesi için oldukça büyük disk alanlarına ihtiyaç vardır.

3D Studio bir sanal bellek programıdır. Bunun anlamı 3D Studio’nun sistemimizdeki tüm belleği kullandığı ve hard diskimizin bir kısmını da sanki RAM mişçesine kullandığıdır. Hard diskimizin 3D Studio tarafından kullanılan kısmı Takas Dosyası olarak adlandırılır. Bu tekniğin avantajı 3D Studionun RAM tükendiğinde bile çalışmaya devam edebilmesidir. 3D Studio Harddiskinizde takas dosyası açamasaydı ,RAM tükendiğinde program göçerdi.

Sanal bellek kullanmanın dezavantajı ise , Hard diskinizdeki takas dosyasına erişimin RAM’e erişime nazaran son derece yavaş olmasıdır. Takas dosyası kullanmak gerektiğinde render süresi iki veya üç boyutlu katına çıkabilir. Takas dosyası ile ilgili diğer bir problemde , bir takas dosyasının bir kere oluşturulduktan sonra boyunun azalmaması ve sonraki Renderiniz RAM’a sığabilecek büyüklükte olsa dahi kullanılmaya devam edilmesidir. Bu , işlemleri önemli ölçüde yavaşlatır. Takas dosyasını temizlemenin tek yolu 3D Studio dan çıkmak ve programı yeniden başlatmaktır.

Programın çalışması için Matematik işlemcili bir CPU veya 386 gibi işlemcilerin yanında bir yardımcı matematik işlemci şarttır.

1. 1 Vibrant Seçeneklerinin Konfigürasyonu

Konfigürasyonun en önemli işlemlerinden biri de 3D Studio’ya girişte VIBRANT konfigürasyon menüsünde gerçekleşir. Vibrant konfigürasyonu görüntü kartının programı desteklemesidir. Programa görüntü kartını konfigüre etmek istediğinizi bildirmek için , prosesi başlatmak üzere 3DSHELL VIBCFG yazın. Böylece karşımıza programın giriş ekranı belirir ve konfigürasyon işlemine girmiş oluruz. Bu menü yardımı ile ekran kartının maximum düzeyde izin verdiği çözünürlük ve renk ayarlarını programdaki ürünlerin netliği ve göze hoş görünmesi açısından yapılması mutlak gereken ayarlar penceresidir. Pencerede menüler arası geçiş için TAB tuşunu kullanırız. En üstten itibaren “Main Display” , “Materials Display” , “Render Display” ve “Flic Playing” ayarlarının girildiği seçenekler mevcuttur.

Sf42

Main Display bölümünde 3 seçenek bulunur : Driver (Sürücü) , Graphics Board (görüntü kartı) ve Font Driver (font sürücüsü) seçeneği. Driver seçeneği VIBRANT , RCPADİ , VGA veya VESA sürücülerinden birini seçebilmenizi sağlar. Görüntü kartınız listede yer almadığı sürece varsayılan olarak VIBRANT sürücüsünü seçmelisiniz. 3D Studio programını başlatmadan önce görüntü kartınızın sürücüsünün yüklendiğine emin olmalısınız. Grafics Board seçeneğini seçtiğimizde alfabetik sıra ile görüntü kartınızın listesi karşımıza gelmekte , bu listeden ekran kartımıza uygun olanı seçeriz veya VESA uyumlu ekran kartını aktif hale getirmemiz gerekmektedir. Çözünürlük ve renk modları seçildikten sonra ekranda görüntü modunu test etme fırsatı veren bir pencere açılır. Burada varsayılan yanıt NO’ dur , ama bu aşamada seçilen modun görüntü kartı ile uyumluluğunu test etmek yerinde olur. Font seçeneği ile program seçilen çözünürlükle uyumlu bir font seçer. Eğer bir başka fontu tercih ederseniz bunu font seçeneklerinden temin edebilirsiniz.

Materials Display konfigürasyonunun seçenekleri Main Display’inkilere benzerdir. 640×480 çözünürlükte 16,7 milyon renk modu kullanılabiliyorsa o zaman bu varyasyonu seçmelisiniz. Sadece sizi yavaşlatacağından dolayı bundan daha yüksek bir çözünürlük kullanılması önerilmez. Görüntü kartınız 256 renkle 640×480 çözünürlük kapasitesine sahip değilse materials editörü kullanamazsınız.

Render Display’iayarlamak da diğer ayrlamalara benzer ancak eğer iki ekran konfigürasyonunuz varsa ve render işlemi çıktıları için Vibrant sürücüleri kullanıyorsanız , bir font seçmek yerine tek veye çift ekran modunu seçebilirsiniz. Eğer Vibrant sürücü kullanmıyorsanız , ekran modu seçeneği hiç bir değişiklik yapmaz.

Flic Playing seçenekleri de diğer seçeneklere benzer. Önce sürücüyü VIBRANT veya ADESK- FLCLIB olarak seçin. Görüntü kartını seçtikten sonra , Vibrant sürücüsünü konfigüre etmek için en kolay yol Add 256 Flic Drivers düğmesini tıklamaktır. Bu Flic oynatacak kartınız için her modu otomatik olarak yerleştirir. Eğer 1280×1024 modu gibi monitörünüz tarafından desteklenmeyen ve dolayısı ile kullanmak istemediğiniz modlar varsa bu modları işaretleyin ve delete Flic Driver’i seçin.

Şimdi Vibrant ekranının alt kısmı boyunca yer alan 3 seçenekten birini tercih etmelisiniz. Konfigürasyon programından çıkmak ve önceki değerlerinizle 3D Studio’ya girmek için Canceli seçin. Mevcut değerlerinizi kaydetmeden Dos’a dönmek için Quit’i seçin. Seçtiğiniz ayarları kabul edip Ok seçeneğine bastığınızda yeni ekran ayarları ile 3D Studio programı başlayacaktır. Program başlamadığı taktirde aynı pencerden grafik ayarlarını yeniden değiştirmeniz gerekecektir.

Kısaca bir sistem konfigürasyonu tanımlarsak ;

486 işlemci veya daha üst düzey işlemciler

Minimum 4MB RAM veya daha üstü

50 MB boş Harddisk alanı veya daha üstü

512 KB grafik kartına gerek duymaktadır.

Daha öncede belirttiğimiz gibi 3D Studio programı çok kapsamlı ve matematiksel işlemlerin yoğun olduğu bir programdır , bu yüzden bilgisayarın kapasitesinin maximum derecede yüksek olması, gerek zaman gerekse oluşturduğumuz ürünlerin görüntüsü açısından tercihimiz olmalıdır.

3D Studio programını çalıştırmak için Dos komut satırından 3DS. EXE yazarak programı çalıştırmış oluruz. 3D Studio animasyon programı mouse ile çalışılacak veya çalışılması mouse ile kolay bir şekil alan bir programdır. Program birçok ayrı pencerelerden oluşur. Bu pencereler aralarında birbiri ile bağlantılıdır. 3D Studio programı çalıştırıldığında karşımıza 3D editör penceresi çıkmaktadır. Programda bir nesneyi hazırlamak için sırayla 2D Shaper , 3D Lofter , 3D editör , Materials editör ve Keyframer editör pencereleri kullanır. Bu pencerelerden kısaca bahsedelim:

Kısayol Tuşu Pencere adı Açıklaması

F1 2D Shaper 2boyutlu nesneler çizim penceresi

F2 3D Lofter 2 boyutlu oluşturulan nesneleri b pencereye çağırılan nesneleri üçü-

ncü boyuta hazırlama penceresi.

F3 3D editör 3D Lofter ile hazırlanmış

Nesneler veya bu pencerede

Oluşturulan kısıtlı cisimlerin

aydınlatma, renk verme , şekil değiştirme gibi efektlerin cisme uygulandığı pencere.

F4 Keyframer Cisimleri hareket kazandırma

Penceresi.

F5 Materials editör Renk ve dolgu kaplamalarının isteğe göre hazırlandığı veya renk

Kütüphanesinden çağırılan

Materiallerin görüntülendiği pen-

ceredir.

BÖLÜM II

2 BOYUTTAN 3 BOYUTA:

2D SHAPER 3D LOFTER KOMBİNASYONU

2D Shaper sadece 3D Stu-dioda bulunan nitelikleriyle iki boyutlu bir çizim ortamıdır. 2D Shaper ın genel amacı , 3D Lofter‘a ekil (Shape ) adı verilen geometrik formları sağlamaktır. 2D Shaper’ın diğer kullanımları , 3D editör ‘e aktarmak için iki boyutlu cisimler oluşturmak , 3D Lofter ve Keyframer da kullanılmak üzere yol( Path) oluşturmaktır.

2.1 2D Shaper Terimleri

2D Shaper da kullanılan terimlerin büyük çoğunluğu 3D Studionun diğer modüllerinde de kullanılır. Buna karşılık bir kaç terim değişik veya 2D Shaper’a özgüdür.

2. 1.1 Vertex

2D Shaperdaki vertexler (bağlantı noktaları) iki amaca hizmet eder. Bir çok çizim ve modelleme programında olduğu gibi bağlantı noktaları segmentlerin (dilim) başlangıç ve bitiş noktalarını belirler. Buna karşılık 2D Shaperda bağlantı noktaları , kendilerine bağlı dilimlerin eğrilik bilgilerinide saklar. Bir eğriyi , ona ait bir kaç bağlantı noktasının eğrilik bilgisiyle oynayarak değiştirebilirsiniz.

2. 1.2 Segment

Segmentler (dilim) iki noktayı (vertex) birleştirir. Doğru veya eğri olabilirler ve eğer eğri iseler , eğrinin düzgünlüğü bağlantı noktaları arasında sahip oldukları bölümlere veya adım sayısına bağlıdır.

2. 1.3 Step

Shape steps (şekil adımları) ayarı , her bağlantı noktası arasındaki dilimin kaç bölümden oluşacağını belirler. Adım ayarı 2D Shaper daki tüm poligonları global olarak etkiler. Adım sayısı ne kadar büyükse eğriler o kadar düzgün gözükür.

2. 1.4 Polygon

Bir veya daha fazla dilim , poligonu (çokgen) oluşturur. 2D Shaper oluşturduğunuz poligonlara bir kısıtlama koymaz. Poligon , 2D Shaper da en yüksek seviyedeki öğedir ve bu yönüyle 3D editördeki nesnelere (object) benzer .

2.1.5 Shape

Bir veya daha fazla poligon bir şekil oluşturur. 2D Shaper dan diğer modüllere poligon göndermenşn tek yolu Shape (şekil) olarak atamaktır.

2.2 Poligon Oluşturmak

Create (oluştur) dalının altındaki tüm komutlar poligon oluşturur. Temelde oluşturduğunuz her şey bir poligon olmalıdır. Noktalar ve dilimlerin varlık sebebi poligonları tanımlamaktır.

2.2.1 Temel Poligonlar

Temel poligonlar basit geometrik şekillerdir. Bu şekilleri oluşturmak komutlarla bağlantılı olarak sadece bir kaç tıklamaya bakar. Temel poligon komutlarının listesi şöyledir:

Ö Line (doğru)

Ö Arc (yay)

Ö Quad (dörtgen)

Ö Circle (çember)

Ö Ellipse (elips)

Doğrular (Line)

2D Shaper daki doğrular (line) sürekli birbirine bağlı dilimlerdir. Bağımsız doğru parçaları oluşturmak istiyorsanız. , Line komutunu sonlandırmak için her doğru parçasından sonra sağ tıklamanız ve sonraki doğru parçası için yeni bir başlangıç noktası seçmeniz gerekir. Eğer sonraki doğru parçasını bir başka doğru parçasının bitiş noktasının çok yakınından başlatırsanız , 3D Studio otomatik olarak doğru parçasını diğerine ekleyecektir. Eğer çizgileri oluştururken elinizi ağır tutuyorsanız, line komutunun bir diğer özelliğini fark edersiniz. Nokta konumlarını sol tıklayarak işaretlerken düğmeyi bırakmayarak noktaya ait eğrilik bilgisini değiştirirsiniz. Bu durumda yön okları ortaya çıkar.

Dörtgenler (Quad)

Kare oluşturmanın hızlı yolu , dörtgenin ilk noktasını seçerken C tuşuna basılı tutup bırakmaktır. 2D Shaper ikinci noktayı seçerken bir kare oluşturmanızı sağlayacaktır.

2.2.2 Çokgenler (N-Gon)

N-Gon komutu 3 den 100’e kadar kenarı olan düzgün çokgenler oluşturmanızı sağlar. N-Gon dalının altından #Sides (kenar sayısı) komutunu seçerek , poligonunuzun kenar sayısını bir kaydırma çubuğu yardımıyla ayarlayabilirsiniz. Kenar sayısını girdikten sonra düz kenarlı (flat) veya dairesel (circular) bir poligonu tercih edebilirsiniz.

Shf177

2.2.3 Metin ve Fontlar

3D Studio da hatırlamamız gereken en önemli şeylerden biri bir metni yerleştirdikten sonra artık onun metin olmadığıdır. 3D Studio , metin değil poligon oluşturduğundan 2D Shaperda metninizi yerleştirmeden önce tashihini iyi yapın.

Metini oluşturmak için aşağıdaki yolu izleyin:

1.Kullanacağınız fontu seçin. 3D Studio kendi FNT dosya formatını Adobe Illustrator’ın AI ve postscript Tipe bir PFB dosya formatlarını okuyabilir.

2.Enter Text iletişim kutusundaki alana istediğiniz yazıyı yazın, imla hataları ve diğer hatalar için kontrol edin .

3.Yazının yükseklik ve genişliğini belirleyin.

Sfh 179

2.2.4 Outline

Outline komutunu modify dalında olması daha uygun olabilirdi; çünkü bu komut tek başına bir şey oluşturmaz. Bu komut bir poligonun ortak özellikli kopyalarını çıkarmada çok hızlı ve yeterlidir. Bu kopyalar dış hatları belirli yazılar , içi boş logolar ve benzer şekiller oluşturmakta çok işe yarar. Outline komutunu kullanırken dikkatli olmalısınız, çünkü her zaman uygulandığı poligonu siler. Bir outline (dış hat ) aralığı belirledikten sonra kaynak poligon silinecek , kaynağın içine ve dışına olmak üzere kaynak poligondan verdiğimiz mesafenin yarısı kadar uzakta olacak şekilde iki kopya çıkarılacaktır.

2.2.5 Boolean İşlemleri

Boolean komutu iki adet poligona ihtiyaç duyar ve boolean poligonun oluşturulması işleminden sonra ikisini de siler. 3D Studio kaynak olacak poligonlara aşağıdaki üç boyutlu kısıtlamayı koyar:

Ö Poligonlar kapalı olmalıdır.

Ö Poligonlar kendileri ile kesişmemelidir.

Ö Poligonlar üst üste binmelidir. Bir diğer poligonun içinde yer alan kapalı bir poligon , üst üste gelen bir poligon sayılmaz.

Bu kısıtlamaların dışında Boolean komutu çok basit ve sağlam bir komuttur.

2.2.6 Poligonları Birleştirmek

2D Shaper’daki Create dalı altında açık poligonları birleştirmek için üç komut vardır:

Ö Line

Ö Connect

Ö Polyconnect

Line komutu herhangi sayıdaki poligonu her hangi sayıda dilimle , elle birleştirmenize imkan sağlar. Line komutunun kullanmanın avantajı, birleştirmeyi birden çok dilim kullanarak yapabilmenizdir.

Connect komutu ilk noktayı veya son noktayı seçmenizle ilgilenmez. Yapmanız gereken tek şey uç noktayı seçmektir. Komut daha sonra bu uç noktaları birer dilimle birleştirecektir. Connect line dan daha hızlı bir komuttur , ama yalnız tek çizgi parçasıyla birleştirme yapmanıza

izin verir. Bir çok poligonu hızla birleştirerek tek bir karmaşık poligon haline getirebilmesi avantajdır.

PolyConnect , üç boyutlu komut içinde en hızlı ama en esnek komuttur. İki poligon seçmenizi ister ve ardından bir poligonun uçlarını diğerinin zıt uçlarına bağlar. Yani birinci poligonun ilk noktasını ikinci poligonun son noktasına ve birincinin son noktasını ikincinin ilk noktasına bağlar.

2.3 Poligonları Seçmek

Poligonları oluşturduktan sonra yapacağınız her şey seçimlerle ilişkilidir. Tüm Modify / Polygon komutları sizden bir poligon seçmenizi isteyecektir . Seçim grupları birden çok poligonu seçmenizi sağlar.

2D Shaper daki seçim grupları 3D editördekine göre daha az kapsamlıdır. İsme veya renge göre seçim yapmanızı sağlayan gruplar yoktur. Sadece imleci getirin ve tıklayın . Ek olarak Window ve Crossing değiştiricileri ile birlikte kullanıla bilen Quad , Circle ve Fence gibi seçeneklerde vardır.

2.4 Poligonları Düzenlemek

2D Shaper ekran menüsündeki Modify / Polygon dalı poligonları düzenlemek için pek çok komuta sahiptir. Move , Rotate , Scale ve Skew gibi komutlar bir sçim yapmaya ve yeni bir değer vermeyi gerektirir. Tüm Modify komutları şu üç faydalı özelliğe sahiptir :

Ö Tüm döndürme (Rotate) ve ölçekleme (scale) komutlarında kullanılan temel nokta için , yerel eksen (Local axis) ikonuna tıklayarak veya X’e basarak global ve yerel eksenler arasında geçiş yapılabilir.

Ö Yön kısıtlamaları TAB tuşuyla kontrol edilir. TAB tuşuna her basışınızda yön kısıtlaması serbest hareketten dikey kısıtlamaya ve sonra yatay kısıtlamaya dönüşür.

Ö Herhangi bir seçimin kopyası seçim yapılırken SHIFT tuşuna basılırken çıkarılabilir.

2.4.1 Poligonları Açmak Ve Kapamak

Create dalının altındaki iki komut poligonları hızlıca açmanızı (open) ve kapamanızı (close) sağlar. Open komutu aslında Modify / Segment / Delete komutuyla aynıdır. Open komutu uygulandığı poligonun açık olup olmadığını kontrol etmez ; seçtiğiniz dilimi siler. Close komutu beklediğiniz gibi çalışır. Close komutunu seçtikten sonra , kapatmak istediğiniz poligonu seçmeniz istenir. Komut seçili poligonun ilk ve son noktaları arasına bir tek dilim çizer.

2.5 Noktaları Seçmek

Noktaları tek tek tıklayarak seçebileceğiniz gibi , Select / Vertex dalının altındaki Quad , Circle veya Fence seçeneklerini de kullanabilirsiniz. Bir poligondaki tüm bağlantı komutlarını seçerseniz , noktalar arasındaki dilimlerde dahil olmak üzere tüm poligonun rengi seçili hale gelecektir. Bir poligondaki tüm noktaları seçmek , Select / Polygon dalından tüm poligonu seçmekle eşdeğerdir.

2.6 Nokta Eklemek

2.6.1 Nokta Eklemek

Modify /Vertex dalında nokta eklemeye yarayan hiçbir komut yoktur. Buna karşın 2D Shaper , varolan bir poligona nokta ekleyen aşağıdaki üç boyutlu komutu sunar :

Ö Create / Line bir poligon diliminden bir doğrunun ilk noktasını seçerseniz , bu dilimin her iki ucundaki noktaların arasına bir nokta daha eklenir. Bundan sonra yapılan tüm tıklamalar , ta ki sağ tıklama yapana kadar aynı dilime daha fazla nokta ekleyecektir.

Ö Modify / Segment / Break Bir dilimi seçtiğinizde , bu komut tıkladığınız yere iki nokta ekler ve dilimi iki parçaya böler.

Ö Modify / Segment / Refine . Bu komut tıkladığınız noktada bir dilime bir tek nokta ekler. Aynı zamanda dilimin eğriliğini bu nokta için analiz ederek orjinal eğriliği yeni noktada da korur. Bu komut bir poligonun karmaşıklığını ayarlamak için faydalıdır.

2.6.2 Tek Bir Noktayı Değiştirmek

Tüm Modify / Vertex komutlarını bir tek nokta üzerinde de uygulayabilirsiniz. Move (Taşı ) ve Delete (sil) komutları isimlerinden de anlaşılacak şekilde çalışırlar. Scale (ölçekleme) ve Skew (eğrileştirme ) komutları özel hareket kısıtlamalarıyla bir noktanın yerini değiştirmeye yarar. Bir tek noktayı Skew etmek , yerini yatay ve dikey kısıtlamayla değiştirmekle aynıdır. Bir tek noktayı Scale etmek ise Move komutunun farklı bir varyasyonunu kullanmanızı sağlar.

2.7 Spline Eğrilerini Ayarlamak

Spline (eğrisel çizgi) eğrilerini ayarlamak. Modify dalı altında hem noktalar hem de poligonlar için Curve , Linear ve Adjust gibi komutlar vardır. 2D Shaper da oluşturulan her şey Spline eğrilerinden oluşur ve bu komutlar eğrilerin miktarını kontrol etmenizi sağlar. Bir poligona ait her noktaya Spline eğrilik bilgisi yerleştirilir. Bu bilgi yön okları sayesinde gösterilir ve değiştirilir. Her nokta iki yön okuna sahiptir ve her ok , o noktada ki eğriliği tanımlayan aşağıdaki üç boyutlu özelliğe sahiptir :

Ö Sıra : Okların rengi noktaların poligon üzerinde hangi yönde ilerlediğini gösterir. Kırmızı yön oku noktaya giden çizgi parçasını işaret eder. Sarı yön oku ise noktadan çıkan nokta parçasını işret eder. Böylece kırmızı yön oku bir önceki noktayı sarı yön oku da bir sonraki noktayı göstermiş olur.

Ö Teğetin doğrultusu : Her dilim noktanın konumunda yön okuna teğettir. Eğer yön okları düz bir çizgi oluşturacak biçimde bir birine paralel iseler o noktadan geçen eğri muntazamdır. Eğer yön okları düz bir çizgi oluşturmuyorsa eğri o noktada bir çukura veya tepeye sahiptir.

Ö Eğriliğin derecesi : Bir yön okunun uzunluğu ait olduğu dilimin eğrilik derecesini belirler. Ok uzadıkça çizgi parçasının eğriliği daha da artar. Eğer yön oklarını sıfır uzunluğuna kadar sürüklerseniz eğri tamamen kaybolacak ve çizgi parçası o noktada doğrusal olacaktır.

2.7.1 Nokta ( Vertex) Ayarlamaları

Aşağıdaki üç boyutlu temel komut bir noktanın eğriliğinin ayarlanmasında kullanılır.

Ö Linear

Ö Curve

Ö Adjust

Bu komutlar bir tek noktaya veya bir tek seçim kümesine uygulanabilir.

Linear

Vertex / Linear komutu, seçilen noktaların eğrilik bilgilerini siler. Noktaya gelen ve noktadan çıkan dilimler bu konumda doğrusal olurlar. Etkilenen dilimler , diğer uşlarındaki eğri nıktalar yüzünden hala eğri görünebilirler.

Curve

Vertex / Curve komutu seçili tüm noktalara varsayılan bir eğrilik değerini atar. Bir noktadaki iki yön oku birbirinden bağımsız olarak hesaplanır. Yön oklarının alacağı çember değeri , komşu noktaya olan uzaklıkta ve seçilen noktanın açık bir poligonun uç nokta olup olmadığından çıkarılır. Bir kareye Curve uygulanması daima bir çember oluşturur.

Adjust

Vertex / Adjust komutu, seçili noktelerın eğriliğini elle ayarlamanızı sağlar. Select Vertex For Spline Adjust (Spline ayarı için nokta seçiniz) mesajı, birden fazla nokta içeren bir seçim grubunu ayarlıyor olsanız bile, farenin seçim tuşunu bir nokta üzerinde tıklamanızı ve basılı tutmanızı gerektirir.

Line Ve Move

Create / Line ve Modify / Vertex / Move komutlarında bir noktayı yerleştirirken fare düğmesini bırakmazsanız, Vertex / Adjust komutuna girmiş olursunuz. Fare düğmesini serbest bırakınca asıl komuta geri dönersiniz. Move komutunda, bu sadece tek noktaları taşırken gerçekleşir.

Rotate

Bazen uzunluklarını değiştirmeden yön oklarını döndürmek isteyebilirsiniz. Bunu Vertex / Adjust komutu ile yapmak zor olabilir, ama Modify / Vertex / Rotate’ i kullanan bir teknikle bu işi başarabilirsiniz. Eğer bir tek noktayı yerel eksen aktifken döndürürseniz , sadece yön okları bundan etkilenecektir. Bunu yaparken yön oklarını göremezsiniz ve bu tekniğin doğrusal noktalara bir etkisi yoktur.

2.7.2 Dilim (Segment ) Ayarlamaları

Dilim ayarlamaları dilimin uçlarındaki iki nokta üzerinde aynı anda çalışır bu komutlar eşsizdir, çünkü eğrileri öyle şekilde ayarlayabilirsiniz ki diğer komutlarla bunu yapmak çok zor olacaktır.

Linear ve Curve

Bu iki komut Modify / Vertex’in altındakilere benzer. Fark her noktadaki iki yön okundan sadece birini etkilemeleridir. Seçilen dilimin ortasına işaret eden yön okları bu komutlar tarafından eğilebilir veya silinebilir. Ama noktaların diğer yöne bakan okları etkilenmezler. Bu komutlar bir kutunun kenarını yuvarlatmak veya bir dairenin bir kısmını düzleştirmek için kullanılabilir.

Adjust

Ayarlamak için bir dilim seçtiğinizde , onu tam orta noktasından tuttuğunuzu hayal edin. Orta noktayı ekranda sürükledikçe iki yön oku grubu da orta noktayı işaret edecek ve orta noktadan geçen eğriliğin muntazam olması için değişecektir.

2.7.3 Poligon Ayarlamaları

Modify / Polygon dalı altındaki eğrilik ayarlama komutları Modify / Vertex dalındaki adaşları ile aynıdır. Bir poligona ait tüm noktaları seçmek ve bu seçim grubuna Modify / Vertex komutlarından birini uygulamak , o poligona Modify / Polygon’daki adaşını uygulamakla aynıdır.

2.8 Şeklin Karmaşıklığını Kontrol Etmek

Karmaşıklığı yönetmekle ilgili kararlar ilk 2D Shaper’da başlar. 2D Shaper’da karmaşıklık kontrolünü dikkatli nokta yerleştirme , eğrilik ayarlama ve şekil adım sayısı yardımı ile sağlarız.

2.8.1 Nokta Ve Eğriler

bir çok yeni 3D Studio kullanıcısının yaptığı ortak hata gereğinden fazla nokta kullanmaktır. Bir eğriliği oluşturmak için birbirine çok yakın bir çok nokta kullanmak istenir. Bu düşünce , bir eğriliğin bir çok küçük çizgi parçasından oluştuğunu öğreten geleneksel çizim ve CAD tekniklerinden kaynaklanır. 2D Shaper gerçek Spline eğrileri ile çalışır, böylece bir kaç nokta yerleştirerek ve sonra her noktadaki eğriliği ayarlayarak çok karmaşık eğriler tanımlayabilirsiniz. Az yüzey sayısına sahip olan poligon Loft edildiğinde ortaya daha verimli bir çisim çıkar ve daha hızlı Render edilir.

2.8.2 Şeklin Adım Sayısını Ayarlamak

Şekil adımı (shape steps), noktaların arasındaki bölümlerin sayısını ifade eder. Adım sayısını Shape / Steps komutunu seçerek ve Set Steps (adımları ayarla) diyalog kutusunda kaydırma çubuğunu oynatarak ayarlayabilirsiniz. Kaydırma çubuğunu sıfır ile on arasındaki herhangi bir sayıya getirebilirsiniz. Şekil adımları eğrilerin gösterilmesi için gereklidir. Eğer adım sayısını sıfıra indirirseniz noktalar arasında hiç bölüm olmaz ve her şey düz çizgilerle bağlanır. Eğer adım sayısını 10’a çıkarırsanız , yüksek bölüm sayısından dolayı eğriler oldukça pürüzsüz görünür. Kabul edilebilir eğriliklere ve mümkün olduğu kadar az adım sayısına sahip olmayı istemelisiniz.

2.8.3 Dilimleri Refine Etmek

Modify / Segment / Refine komutu eğrilere fazladan nokta yerleştirme tekniğini kolay hale getirir. Komutla dilimin nokta yerleştirmek istediğiniz yerini tıklayın. 3D Studio o bölgeye bir nokta koyar ve noktanın eğrilik bilgisini dilimin orjinal eğriliğine uygun hale getirir.

Bu komutu kullanmanın en iyi yolu, yüksek adım sayısı ve minimum miktarda nokta kullanarak poligonu çizmektir. Ardından Segment / Refine komutu ile eğri çizgi parçalarına nokta ekleyin. Birçok eğri sadece birkaç ek noktaya gerek duyacaktır. Noktaları ekledikten sonra adım sayısını düşürün ve poligonun görünüşünü inceleyin. Genellikle görünür bir kalite kaybı olmadan adım sayısını yarısına veya üçte birine indirebilirsiniz. Bu teknik modellerimizin verimliliğini büyük ölçüde artıracaktır.

2.9 Şekilleri Anlamak

Şekil , 2D Shaper’daki birden fazla poligonun bir toplamıdır. Şekilleri doğrudan değiştiremezsiniz. Şekiller poligonları 2D Shaper’dan diğer modüllere aktarmaya yarayan metodlardan sadece biridir. Şekiller diğer modüllere aşağıdaki kullanımlar için aktarılır:

Ö 3D Lofter’da hem Loft yolu hem de Loft şekli olarak

Ö 3D editörda iki boyutlu model nesnesi olarak

Ö Keyframerde hareket yolları olarak

Gereksinimler şeklin hangi modüle ve hangi sebeple gönderileceğine göre değişir.

2.9.1 Kapalı Ve Açık Şekiller

Açık ve kapalı şekil kavramları kolay anlaşılır. Kapalı şekilde, şeklin son noktası ilk noktasına bir dilimle bağlanmıştır. Şekillerin kullanılması için kapalı olmasına her zaman gerek yoktur. 3D Lofter ve Keyframer açık şekilleri yol olarak kabul edilir. 3D editöra iki boyutlu cisim veya 3D Loftera loft şekli olarak gönderildiğinde şekiller kapalı olmalıdır.

2.9.2 Geçerli Ve Geçersiz Şekiller

Şekiller için kullanılan “geçerli” ve “geçersiz” terimleri biraz şanssız bir seçimdir. Açık şekillerde olduğu gibi Keyframer ve 3D Lofter yolları birçok “geçersiz” şekille problem yaşamaz. Geçersiz şekil açık veya kendini kesen şekildir. Bir şekil kendini iki şekilde kesebilir. Şekil, kesişen dilimlere sahip tek poligon veya kenarları üstüste gelen iki ya da daha çok poligondan oluşabilir.

Tek bir poligondan oluştuğu sürece tüm şekiller ister geçerli ister geçersiz olsun 3D Lofter ve Keyframerda yol olarak kullanılabilir. Sadece geçerli şekiller (üst üste binmemek şartı ile birden çok poligondan oluşabilir), 3D Lofter’da Loft şekli olarak veya 3D editör’da kullanılabilir.

2.10 Basit Cisimleri Loft Etmek

3D Lofter üç boyutlu boyutlu geometriler oluşturmak için çok kuvvetli bir araçtır. 3D Lofter , 2D Shaper’dan karmaşık şekiller kabul eder ve bunları bir yol üzerinde gezdirerek bir model cismi oluşturur. Bu kısım 3D Lofter’ın basit kullanımları ve yol üzerinde değişiklik yapma üzerinde odaklanmıştır.

2.11 3D Lofter Terimlerini Anlamak

3D Lofter , 2D Shaper ile büyük oranda aynı terimleri kullanır. Bazı terimler biraz farklı uygulanmış ve yeni terimler eklenmiştir.

2.11.1 Şekiller ( Shapes)

Geçerli şekiller 2D Shaper’dan alınır ve 3D Lofter yolu üzerinde bir seviye üzerine yerleştirilebilirler. Şekilleri bir tür Eksrüzyon kalıbı olarak düşünebiliriz. 3D Lofter’ın oluşturacağı üç boyutlu cisim yol üzerinde karşılaşacağı her şekle uyum göstermeye zorunludur.

2.11.2 Yol (Path)

Yol,şekilleri tutan bir yapı gibi hizmet eder ve Loft ile oluşturulacak cismin bel kemiğini tanımlar. Yol, 2D Shaper’da olduğu gibi ayarlanabilen bir spline eğrisidir. Fark ; 2D Shaper splineları iki boyutlu iken, loft yolu 3 boyutludur. Ayrıca yol adım sayısını, 2D Shaper’da şekil adım sayısını ayarlarken olduğu gibi değiştirebilirsiniz. 3D Lofter şekil ve yol adımları için ayrı kontroller sağlar.

2.12 2D Shaper’ın Etkileşimi

2D Shaper ve 3DLofter birbirleriyle çok yakından ilişkilidir.Çoğu zaman tek bir cismi loftetmekiçin kendinizi defalarca Shaper ve Lofter arasında gidip gelirken bulacaksınız.Cisimleri etkin şekilde loft edebilmek için 2D Shaper ve 3d Lofter ‘ın etkileşimini anlamak anahtar rolü oynayacaktır.

2.12.1 Şekilleri Atamak

2D Shaper ‘dan 3D Lofter ‘a bir şey göndermeden önce, ilk olarak bir veya daha çok poligonu geçerli şekil olarak atamamız gerekir. Bunun için gerekli komutlar 2D Shaper’da Shape dalı altındadır. Assign, All, ve None komutları poligonları geçerli şekil olarak atamaya veya geçerli şekilden çıkarmaya yarar.

2.12.2 Şekil Kancası (Shape Hook)

Şekil kancası , şekil 3D Lofter’a getirildiğinde yola göre nereye yerleştirileceğini tanımlar. Standart olarak şekil kancası (0,0) koordinatlı noktada bulunur. Çoğu zaman kancanın yerini ihmal edebilirsiniz , çünkü 3D Lofter şeklin yol üzerinde ortalanması ve hizalanması ile ilgili kullanışlı komutlara sahiptir.

Şekil kancasının yerini ayarlamak , eğer birden fazla şekil atayacak ve bunları yol üzerinde değişik seviyelere yerleştirecekseniz yararlıdır. Bu durumda poligonları düzenleyebilir ve 2D Shaper’da kancanın yerini daha etkin şekilde saptayabilirsiniz. Shape / Hook dalını seçerseniz , kancanın gösterilmesi ve idaresi için şu komutlar gözükecektir:

Ö Show / Hide , kancanın gösterilip gizlenmesini belirler.

Ö Place , kancanın elle yerleştirilmesini sağlar

Ö Center komutu kancayı otomatik olarak geçerli şekli çevreleyen hayali dörtgenin merkezine yerleştirir. Bu komut aynı 3D Lofter’daki Shape / Center gibidir.

Ö Home kancayı (0,0) noktasına yerleştirir.

2.12.3 İlk Nokta

Tek bir poligonu yol üzerindeki tek şekil olarak Loft etmediğiniz sürece, ilk noktanın yeri ile ilgilenmelisiniz. Her poligon noktaların bir listes,ini tutar. Bu listenin başındaki nokta ilk noktadır. Şekil 3D Loftera getirildiğinde ilk nokta büyük önemö taşır.

Açık şeklin ilk noktası , iki uç noktasından biri olmalıdır. 3D Loftera bir açık şekil ancak yol olarak getirilebilir. İlk nokta hangi ucun yolun başlangıcı olacağını belirler.

Kapalı şekiller için ilk nokta önemlidir. Çünkü bir şekle ait iç içe poligonlar ve yoldaki şekiller birbirine ilk noktalardan bağlıdır. Nesne loft edilirken ve 3D editöra alınırken , ilk yüzeyin ilk kenarı yol üzerindeki her şeklin ilk noktasını birbirine bağlayan kenar olarak bağlanır. Böylece cismin yüzeyleri burulacaktır.

Yanlış hizalanmış ilk noktalarla ilgili problemden 2D Shaper’da ilk noktaları daima göstererek kurtulabilirsiniz. Display / First / Show komutu ile her poligonun ilk noktası siyah renkte gösterilecektir. Artık bir çok poligondan oluşmuş şekillerde yanlış hizalanmış noktaları rahatça görebilirsiniz.

İlk Noktaları Hizalamak İçin Poligonları Düzenlemek

Birden fazla poligonun ilk noktasını, poligonları 2D Shaper’da Modify komutları ile düzenleyerek hizalayabilirsiniz. Bazı ilk noktalar bir poligonu uygun konuma taşıyarak veya döndürerek kolayca hizalanabilirler. Bu teknikler ortak bir merkeze sahip düzgün poligonlarla çalışırken özellikle faydalıdır.

İlk Noktayı Tanıtmak

Çoğu zaman kolayca değiştirilemeyecek karmaşık poligonlara sahip olursunuz ve ilk noktalarını ayarlamanız gerekir. Bu durum özellikle dış hatları çıkarılan şekillerin loft işlemi sırsında ortaya çıkar. Çoğu kez dış hattı çıkarılan poligonların ilk noktaları aynı nokta olmaz. Bunu düzeltmek için Display / First / Choose komutunu verin ve ilk noktayı seçin.

2.12.4 Şekilleri Almak ve Koymak

Şekilleri 3D Loftera Shapes / Get dalı altındaki komutlarla getirirsiniz. Bu daldaki üç komut 2D Shaper, Disk ve Level’dir. 2D Shaper , 2D Shaper’da atanmış (assign) şekli alır ve onu geçerli yol seviyesine yerleştirir. Disk ve Level komutları ise , şekli disketteki bir dosyadan alır veya yol üzerindeki bir diğer seviyeden şekli kopyalar. Şekilleri koymak (put) aynı almak (get) gibidir, sadece tersidir. Shapest / Put komutu da 2D Shaper , Disk ve Level komutlarına sahiptir. Ancak şimdi geçerli yol seviyesindeki şekil seçilen yere kopyalanacaktır.

2.12.5 Yolları Almak

2D Shaper’dan bir şekli 3D Lofter’da yol olarak kullanmak üzere alabilirsiniz. Tek kısıtlama şeklin bir poligona sahip olmasıdır. Yolları 2D Shaper’da yapmanın avantajı, bu modülde kuvvetli tasarım araçlarının olmasıdır. 2D Shaper , düzenli poligonlar ve karmaşık şekillere yol üretmek için yaralıdır.

Eğri Yolları Ayarlamak

3D Lofter , yolun şeklini değiştirmek için birçok komut sağlar. Bunlardan en çok kullanılan ikisi Insert Vertex ve Move Vertex’dir. Insert Vertex , ister iki nokta arsında ister yolun sonunda olsun yol üzerindeki herhangi bir yere nokta eklemenizi sağlar.

3D Lofter’daki Move Vertex komutu, 2D Shaper’da Modify / Vertex / Move gibi çalışır. Taşınacak noktayı seçersiniz, sonrada noktanın yeni yerini tıklarsınız. Eğer yeri tıklarken farenin düğmesini basılı tutarsanız, yön okları ortaya çıkar ve bunlar aynı 2D Shaper’da olduğu gibi davranır.

Yol Adımları Ve Refine

2D Shaper’da şekil karmaşıklığını kritik konu olması gibi, 3D Lofter’da da yol karmaşıklığı ve eğrilerin tanımı önemlidir. 3D Lofter’daki Path / Refine ve Path / Steps komutları , 2D Shaper’daki Modify / Segment / Refine ve Shape / Steps komutlarına benzer. Şekil karmaşıklığı ve Refine komutu ile ilgili önceki paragrafkarı tekrar gözden geçirin ve bu teknikleri 3D Lofter’da yol oluştururken de uygulayın.

2.13 3D Lofter’da Şekil İdaresi

Şekilleri 3D Loftera ithal ettikten sonra onları idare etmek için kuveetli araçlara sahipsiniz. Her ne kadar bunlar 2D Shaper dakiler kadar kapsamlı olmasa da küçük ayarlamaların üstünden gelir ve sizi sık sık 2D Shapera gitmekten kurtarır. Şekilleri düzenlemek için gerekli komutlar Shapes dalı altındadır.

2.14 Yol Üzerindeki Şekilleri Düzenlemek

Shapes dalı altında aşağıdaki beş temel komut bulunur :

Ö Move

Ö Rotate

Ö Scale

Ö Delete

Ö Center

İlk dört komut 2D Shaper daki benzerleri gibi çalışır. Bir fark 3D Lofter da yerel veya global eksenin seçilememesidir. Rotate ve Scale komutları her zaman yolu temel alırlar. Ayrıca 3D Lofter da seçim grupları da yoktur , çünkü her seviyede yalnız bir şekil olabilir ve komutlar o şeklin her poligonunu etkiler. Bu son nokta bilhassa Delete komutunda önemlidir. Bu komut bir şekle ait Poligonu silmeye değil , yolun her hangi bir seviyesindeki geçerli şekli silmeye yarar.

Center Komutu şeklin yerini , yolun şeklin tam ortasından geçeceği tarzda değiştirir. Eğer 2D Shaper da vaktinizin bir kısmını şekil kancasını istediğiniz yere koymakta kullanırsanız , 3D Lofter da şekil yola istediğiniz biçimde yerleştirilecektir. Bu teknik gayet iyi çalışır , çünkü gerçek hayattaki bir çio cisim merkezden geçen Simetri ekseniyle üretilir.

2.14.1 Birden Çok Şekil Kullanmak

Bir çok kullanışlı ve gerçekçi cismin , tek bir şekli bir yol üzerinde Loft ederek oluşturabilirsiniz. Ancak 3D Lofter çok daha fazlasını yapabilecek kapasitededir. 3D Lofter ın gerçek gücü yol üzereine birçok şekil yerleştirildiğinde görülür.

Daha önce değinildiği gibi şekiller , loft edilmiş cisim içim şablon olarak hizmet eder. Eğer bir seviyeden diğerine şekil değişiyorsa , cisim bu yeni şekle de uyum sağlamak için dönüşecektir. İlk başta bunu 3D Lofter ın özel bir yönü olarak görebilirsiniz. Daha yakından bir inceleme ile , günlük bir çok eşyanın bir şekilden diğerine geçiş yaptığını görürsünüz (örneğin vidalar , masa ayakları , tutacaklar). Bir şekilde diğerine geçiş yeteneği 3D Lofter ın çok önemli bir özelliğidir.

Nokta Kısıtlamaları

3D Lofter da birden çok şekli Loft etmede bazı kısıtlamalar mevcuttur. Bu kısıtlamalardan biri , her şeklin aynı sayıda noktaya sahip olması gerekliliğidir. Bu kısıtlama ilk bakışta görüldüğü gibi değildir. 2D Shaper‘daki Modify / Segment /Refine komutu , şeklini bozmadan dilime nokta eklemenizi sağlar. Bu komut nokta sayılarını eşitlemede bir numaralı araçtır.

İlk Noktaları Hizalamak

Düşünülmesi gereken bir diğer meselede her şeklin ilk noktalarının hizalı olmasıdır. Eğer aynı hizada değillerse , model bir şekilden diğerine dönüşürken burulacaktır. Genellikle bunu istemezsiniz , bu yüzden de ilk noktaları ayarlamak için daha önce kullanılan teknikleri uygulayın. Eğer bir loft modeli oluşturmuş ama ilk noktaların aynı hizada olduğundan emin değilseniz , Shapes / Compare komutunu kullanın . Bu komut sizden yol üzerinde bir seviye seçmenizi ister , sonra o seviyedeki şekli aktif seviyedeki şeklin üzerine gelecek durumda Shape görüş penceresi üzerine çizer. Seçilen seviyedeki şeklin ilk noktası yeşildir ve yerini aktif şeklin ilk noktasıyla karşılaştırabilirsiniz. İki şeklide gördükten sonra ,ilk noktaları Shape / Rotate gibi 3D Lofter komutlarıyla veya 2D Shaper da ayarlamaya karar verebilirsiniz.

Shf 215

2.15 Tween

Ekranın sağ alt köşesinde bulunan bir düğmedir ve Objects / Preview ile Objects / Make iletişim kutularında da karşınıza çıkar. Tween düğmesi modelimizin toplam karmaşıklığına büyük etkide bulunur ve yol adım ayarıyla doğrudan ilişkilidir. Tween aktifse her nokta ve adımda bir kesit şekli veya bir dilim oluşturulur. Bu cisminize fazladan eklenmiş bir çok dilim sonucunu verir. Eğer tween kapalıysa sadece nokta konumlarında kesit şekli oluşturulur.

Tween’i kapalı tutmak tam olarak yol adım sayısını 0’animasyon indirmekle aynıdır. Bir çok kullanıcı yol adım sayılarına ve eğrileri refine etmeye çok az dikkat eder. Eğer Path/ Refine ve Path / Steps komutlarıyla yoğun şekilde çalışmayı öğrenirseniz , verimli ve hızlı render edilen cisimler oluşturmada büyük bir başarı elde edersiniz. Hedefiniz adım sayısını az tutarken sadece eğrileri muntazam gösterecek kadar nokta kullanmak olmalı. Eğer bunu yaparsanız ,tween açık olmalı çünkü yolda kalan seviyeler ihtiyacınız olan seviyelerdir.

2.16 Contour

Contour düğmesi her zaman tween düğmesinin yanındadır. Contour yanınızda bulunan şekillerin eğrileri takip ederken dönmesini kontrol eder. Bir çok açıdan Contour , 3D editör ‘deki Skew’le Bend arasındaki fark gibidir. Eğer Contour açıksa , şekilleriniz yoldaki eğimleri takip ederken dönecektir. Contour şekilleri yola dik kalmaya zorlar , bu da yol eğrilerinde düzgün eğilmelere sebep olur. Eğer Contour kapalıysa , şekiller her zaman önden (Front) görüş penceresine paralel kalır. Bu ise eğilmekten ziyade bir yandan diğer yana çarpıtılmış bir cismi ortaya çıkarır. Genel olarak , eğrilere sahip bir yol tasarlamışsanız , cisminizin eğilmesini istersiniz. Bu yüzden Contour’u açık bırakın.

2.17 Nesneler Oluşturmak

2.17.1 İsimlendirme

İletişim kutusu açıldığı anda Name (isim ) alanı seçilidir. Bu cisimleri isimlendirmenin ne kadar önemli olduğunun bir göstergesidir. Hiç bir zaman önerilen isimi kabul etmeyin cisimlere her zaman anlamlı bir isim verin isim vermeyi ihmal edeceğiniz tek an , ard arda gelecek cisimler yaptığınız ve isimlerinin de ard arda verilmesini istediğiniz andır. İlk cisme ismini verir ve sonra 01 eklersiniz. Geri kalan cisimleri Loft ettikçe iletişim kutusundaki + düğmesine basarak zaman kazanabilirsiniz. “+” düğmesi isme bir ekleyecek ve cismi o on ki isimlerle oluşturacaktır.

2.17.2 Uçları Kapama (Capping)

İki uçları kapama düğmesiyle (Cap start ve Cap end) 3D Studio nun Loft edilen cismin uçlarını kapamasın karar verebilirsiniz. 3D Studio’nun bir yüzey modelleyicisi olması sebebiyle oluşturduğunuz her şeyin içi boştur . katılık izlenimi cimin uçları kapatılarak sağlanabilir. Eğer cisminizin açık ve içi boş görünmesini istiyorsanız 3D Lofter ‘ın uçlardan bir veya ikisini kapamamasını sağlayın.

2.17.3 Pürüzsüzleştirme

İki pürüzsüzleştirme (Smoothing) düğmesi ile cisminizin yüzeyinin pürüzsüz veya kırık olmasına karar verebilirsiniz. Bu , 3D editörde pürüzsüz (Smooth) veya kırık (Faceted) küre seçmeye benzer. Büyük fark ise pürüzsüzlüğün uzunluk veya genişlik boyunca mı , yoksa ikisinde demi olacağı üzerinde kontrol sağlanabilmesidir.

Smooth Length düğmesini tıklarsanız ,3D Studio cismi yolu uzunluğu boyunca pürüzsüzleştirecektir. Bu cismin eğrilerde muntazam eğilmesini ,ama kesit şeklinin kırık olarak Render edilmesini sağlar. Smooth Width düğmesinin açılması pürüzsüzleştirmenin kesit şekli çapı boyunca olmasını sağlar. Bu ayar , kesit şeklin pürüzsüz olmasını ama yoldaki eğimlerin kırık olmasını sağlar. İki düğmeyi de açmak tamamen pürüzsüz bir cismi ortaya çıkarır.

Shf 218

2.17.4 Optimize Etmek

Optimization düğmesi Loft ettiğiniz cismin karmaşıklığını minimuma getirmenize yardım eden bir araçtır. Optimization , şekli analiz eder ve gereksiz şekil adımlarını mümkün olduğunca kaldırır. Eğer tüm şekliniz eğriyse , optimize etmek bir fayda sağlamaz. Optimize etmenin bir faydası da şekillerin uçlarını kapamada daha az yüzey kullanılmasını sağlamasıdır. Bu avantajından dolayı 3D editör’e iki boyutlu cisim olarak atacak olsanız bile 2D Shaper daki geometriyi her zaman Loft etmelisiniz . 3D editör , 2D Shaper dan iki boyutlu cisim olarak şekiller ithal edebilir. Ama optimizasyondan yararlanamaz.

2.17.5 Yol Ve Şekil Detayı

Path Detail ve Shape detail düğmeleri Loft etmeden önce şekil ve yol adımı ayarlarını değiştirmenizi sağlar. Bu düğmeler sadece Tween düğmesi açıksa ku

Şekil Listesi

Salı, 06 Kasım 2007

ŞEKİL LİSTESİ

Şekil 1.1 Kavramanın şematik gösterilişi

Şekil 1.2 Kavrama bağlanmış durumda

Şekil 1.3 Kavrama çözülmüş durumda

Şekil 1.4 Tek diskli kavramanın ana parçaları

Şekil 1.5 Tek diskli kavrama ve parçaları

Şekil 1.6 İki diskli kavramanın ana parçaları

Şekil 1.7 İki diskli kavramanın şematik şekli

Şekil 2.1 Ana kavrama grupları

Şekil 2.2 Diskli kavrama çeşitleri

Şekil 2.3 Tek diskli kavrama çeşitleri

Şekil 2.4 Diyafram yaylı kavrama çeşitleri

Şekil 3.1 Kavrama durumunun zamana bağlı olarak değişimi

Şekil 4.1 Diyafram yay karakteristik boyutları

Şekil 4.2 Diyafram yayın karakteristik eğrisi

Şekil 4.3 Serbest hal, yeni ölçü ve aşınma eğrileri

Şekil 4.4 Diyafram yayın katı modeli

Şekil 5.1 Baskı diskinin ısıl analizi sonucu sıcaklık değişiminin profilden görünüşü

Şekil 5.2 Baskı diskinin ısıl analizi sonucu sıcaklık değişiminin arkadan görünüşü

Şekil 5.3 Baskı diskinin ısıl analizi sonucu sıcaklık değişiminin önden görünüşü

Şekil 6.1 Sabit disk

Şekil 6.2 Elastik disk tip 1

Şekil 6.3 Elastik disk tip 2

Şekil 6.4 Elastik disk tip 3

Şekil 6.5 Yastık yayın karakteristik eğrisi

Şekil 6.6 Yastık yayın etkisiyle birlikte baskı yükü eğrisi

Şekil 6.7 Gerilme düzeltme faktörü diyagramı

Şekil 6.8 Komple balata takımı kesit resmi

Şekil 6.9 Komple balata takımı montaj resmi

Şekil 6.10 Komple balata takımı malzeme tanıtılmış montaj resmi

Şekil 7.1 Kavrama kapağında kuvvet sonucunda uzama miktarları

Şekil 7.2 Kavrama kapağındaki gerilme miktarlarının değişimi

Şekil 7.3 Kavrama kapağında emniyet katsayısının değişimi

Şekil 8.1 Mekanik Taşıt Kavraması Malzeme Tanımlanmış Montaj Resmi

Şekil 8.2Mekanik Taşıt Kavraması Montaj Kesit Resmi

Şekil 8.3Mekanik Taşıt Kavraması Malzeme Tanımlanmış Kesit

Şekil 8.4 Mekanik Taşıt Kavraması Montaj Resmi

Şekil 8.5 Yastık Yay Etkisi Yokken Ayırma Yatağı ve Baskı Yatağı HareketleriniDeğişimi

Şekil 8.6 Yastık Yay Etkisi Varken Ayırma Yatağı ve Baskı Yatağı hareketlerinin değişimi

Şekil 8.7 Yastık Yay YokkenAyırma Yükü Aşınma Eğrileri

Şekil 8.8 Baskı Kuvveti ve Ayırma Kuvveti Karakteristiklerinin Beraber Gösterilmesi (Yastık Yay Etkisi Yokken)

Şekil8.9 Disk Yaylanmasının Olduğu ve Olmadığı Durumlardaki Ayırma Kuvvetlerinin Karşılaştırılması

Şekil 8.10Disk Yaylanması Yokken Baskı Kuvvetinin Ayırma Yatağı Hareketine Göre Azalışı

Şekil 8.11 Disk Yaylanması Varken Baskı Kuvvetinin Ayırma Yatağı Hareketine Göre Azalışı

Tablo Listesi

Salı, 06 Kasım 2007

TABLO LİSTESİ

Tablo 6.1 Yastık yayın verdiği kuvvetin deformasyona gore değişimi

Tablo 6.2 Yay çeliklerinin mekanik özellikleri

Önsöz

Salı, 06 Kasım 2007

ÖNSÖZ

Çıktığı günden beri büyük beğeni toplayan ve programcılığı zevke dönüştüren Visual Basic programlama dili,programcılık korkulacak,sıkıcı bir iş olmaktan çıkıp herkesin ilgisi haline gelmiştir. Bunda Visual Basic dilinin katkısı azımsanamayacak kadar çoktur. Visual Basic hem Basic dilinin getirdiği kolaylığı hem de Windows ortamının getirdiği görselliği en üst seviyede programcıya sunabilmektedir. Eskiden Basic dili ile başlangıç olarak kabul edilir ancak ciddi denebilecek hiçbir uygulama Basic dili ile yazılamazdı. Halbuki Visual Basic hem başlangıç seviyesinde bir dil olma özelliğini korurken hem de en profosyonel uygulamaları bile geliştirebilecek kapasitede bir dildir. Günümüzde Visual Basic ile yapılmış bir çok modern uygulama görebilir ve kendiniz de kolayca yapabilirsiniz.

Windows ‘un Visual Basic Programlama yapısının programlamaya getirdiği yeni boyut programlama dillerinin monotonluktan kurtarmış ve her versiyonda büyük yeniliklerin ve kolaylıkların programlama dilleri içerisinde yer almasına sebep olmuştur. Visual Basic in ilk versiyonu ile bugün ulaştığı (Visual Basic Pro 6.0) versiyonu arasında gerçekten çok büyük bir gelişme yaşanmıştır ve uzun bir süre yenilik ve kolaylıkların devam edeceği de görülmektedir. Eskiden kullanılan programlama dilinin versiyonu önem taşımazdı, ancak şimdi her versiyonda büyük yenilikler yaşanmakta ve programcı haklı olarak hep en son versiyonla program yapma isteği duymaktadır.

Visual BASİC 6.0 PROJE TASARIM PENCERESİNE

BAKIŞ

Visual BASIC 6.0 açıldığı zaman karşınıza Şekil 1.1’de görülen ekran görüntüsü gelecektir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image002.jpg[/IMG]

Şekil 1.1 –Visual Basic açılış ekranı

Örnekler Standard EXE projeleri ile oluşturulacaktır. Visual basıc tasarım penceresi açıldığında göze ilk çarpan önemli özellik tasarım ortamının MDI modunda açılmasıdır.(Şekil 1.2)

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image004.jpg[/IMG]

5

Şekil 1.2 Visual BASIC 6.0 Proje Tasarım Penceresi

MENÜ SATIRI: 11 adet ana menü başlığı ve herbirinin alt menülerini içerir. Visual BASIC ortamında proje(yazılım) geliştirirken yararlanılabilecek çeşitli fonksiyonları vardır.

KONTROL NESNELERİ: Visual BASIC ortamına önceden yerleştirilmiş neslerdir. Bu kontrollerden gerekli olanları form üzerine taşınır ve yazılım icrası esnasında istenilen fonksiyonları yerine getirebilmeleri için bu kontrollere bağlı bilgisayar programları(kodlarcodes) da oluşturulur.

FORM: Visual basıc pojesinin temel nesnesidir. Proje ile ilşkili tüm nesneler form üzerine yerleştirilir. Bir projede, gerekiyorsa birden fazla form da bulunabilir.

PROJECT: O anda aktif formla ilişkili olarak bazı işlevleri yerine getirir. Pencere başlığının hemen altında iki guruba ayrılmış üç buton bulunur. Bunlardan View code butonu seçilirse , o

esnada aktif olan nesneye bağlı olarak oluşturulmuş bilgisayar programı(kodu) görüntülenir.

View Object butonu seçilirse de, bu durumda tasarım aşamasında o an için seçilmiş olan nesne x

görüntülenecektir.

Tolggle Folders butonu ile ise proje içinde kullanılan genel maksatlı modüller, ormlar, ınıflar ve kaynak dosyaları gibi proje bileşenleri bir dizin mantığı içinde ayrıntılı veya toplu halde görüntülenir.

ÖZELLİKLER : o anda aktif durumdaki (seçilmiş) Visual BASIC kontrolünün tüm özellikleri görüntülenir.

IMMEDIATE: breake modda (tasarım ortamında program akışının kesilmesi) otomatik olarak boş olarak açılır.Debug,reset ve komut satırındaki işlemler uygulanabilir veya program akışını kalındığı yerden devam edilebir.

LAYOUT: Formların ekrandaki pozisyonlarını mouse yardımı ile ayarlanabilir.

MENÜ SATIRI

FİLE(DOSYA) MENÜSÜ:

Şekil 1.3’deki alt menülerden oluşur.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image006.jpg[/IMG]

r isimle yeniden saklanabilir. Print:Project ile ilgili istenilen (kod sayfasını,formu) bölümleri yazıcıya gönderir. Print Setup:Uygulamanızı yazıcıya aktarma durumunda yazıcı tipini, yazıcıdaki kagıt baskısını,yatay,dikey durumunun ayarı. Make Project..exe:Çalıştığımız Visual Basic uygulamasını EXE haline çevirerek Visual BASIC ortamından bağımsız çalışılmasını sağlar. Make Project Group:Uygulamamız birden fazla project içeriyorsa görüntülenir. Uygulamanızda oluşturmak istediğiniz projeleri seçmenizi sağlar. Exıt:Visual BASIC ortamından çıkışı sağlar." v:shapes="_x0000_s1027" height="570" width="438">

EDİT MENÜSÜ

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image009.jpg[/IMG]

Undo Delete(Gerial):Yapılan son işlemi geri alır.

Can’t Redo(Yinele): Geri alınan işlemi tersine çevirir.

Cut(Kes): Seçilen alanı silip panoya alır.

Copy(Kopyala): Seçilen alanı panoya kopyalar.

Paste(Yapıştır):Panodaki bilgileri yazdırır.

Paste Link(Özel Yapıştır):Panodaki bilgileri istenilen biçimde yapıştırır.

Delete: Seçilmiş metin yada nesneyi siler.

Select All: Aktif kod penceresindeki bütün kodu veya form üzerindeki bütün kontrolleri seçmek için kullanılır.

Find(Ara): Visual BASIC kodu içerisinde bir metni aramak için kullanılır.

Find Next(Aramaya Devam): Find ile yapılan arama işlemine kaldığı yerden devam etmek için kullanılır.

Replace(Değiştir): Bir metin içinde bir sözcüğü aratıp, bulunduğu takdirde başka sözcükle değitirmek.

Indent(Tab):Tab tuşunun görevini yapar.

Outdent(Shift Tab): Tab tuşunun ilerlettiği sutun miktarı kadar sola kaydırır.

Insert File(Dosya Birleştir): Çalışılan kod sayfasının içerisine başka bir dosyada bulunan kodu eklemek için kullanılır.

List properties/Methods: Kod penceresine her uygun ifadenin ardından bu ifadeden sonra yazılabilecek mümkün diğer ifadeleri içeren bir yardım kutucuğu görüntüler.(data1. sonra gelecek menü)

List Constants:Kod penceresinde,yazılan ifadenin alabileceği sabit değerleri içeren yardımcı bir pencere görüntüler.

Quick Info: Kod penceresinde seçilen fonksiyonların,metodların,prosedürlerin ve değişkenlerin yazılımını gösteren yardımcı bir pencere görüntüler..

Parameter Info: Kod penceresinde yazılan veya ifadelerin ,çerdikleri parametreleri gösteren yardımcı bir pencere görüntüler.

Complate Word: VB, yazmakta olduğunuz ifadeden kelimeyi bulmaya çalışır. Ve kullanmanızı sağlar.

Go to Row: Satıra git (Birinci,Önceki,Sonraki,Yeni)

Bookmark:Program kodunun çok sık kullanıldığı satırlarına kolay bir şekilde ulaşmak için kullanılır.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image011.jpg[/IMG]

VİEW MENÜSÜ

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image013.jpg[/IMG]

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image017.jpg[/IMG]PROJECT MENÜSÜ

FORMAT MENÜSÜ

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image020.jpg[/IMG]

DEBUG MENÜSÜ

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image022.jpg[/IMG]

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image023.gif[/IMG]

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image025.jpg[/IMG]

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image028.jpg[/IMG]TOOLS MENÜSÜ

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image029.gif[/IMG]

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image030.gif[/IMG]

ADD-INS MENÜSÜ

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image032.jpg[/IMG]

WİNDOW MENÜSÜ

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image034.jpg[/IMG]

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image035.gif[/IMG]

HELP MENÜSÜ

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image037.jpg[/IMG]

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image038.gif[/IMG]

Visual Basic (Bölüm-2) Projeler Ve Bileşenleri

Salı, 06 Kasım 2007

Visual Basic (Bölüm-2) PROJELER VE BİLEŞENLERİ

Visual Basic’te bir uygulama geliştirmek proje denilen yapı içerisinde gerçekleştirilir. O halde yeni uygulama yeni bir proje oluşturmayı gerekli kılacaktır. Bir Visual BASİC Projesi,formlar,Formlar üzerine yerleştirlen kontrol nesneleri, nesnelere bağlı kodlar (event procedures-olay prosedürleri) ile bağımsız modüllerden oluşur. Visual BASİC ‘te proje dosyalarının uzantıları .max ya da . vbp şeklindedir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image002.gif[/IMG]

Şekil 2.1’-Başlangıç Penceresi

Şekil 2.1’de görülen başlık satırı o anda aktif olan projenin adını göstermektedir.

Menü Satırı: 11 adet ana menü başlığı ve herbirinin alt menülerini içerir. Visual BASIC ortamında proje(yazılım) geliştirirken yararlanılabilecek çeşitli fonksiyonları vardır.

Araçlar Satırı: Menü içerisinde yer alan bazı işlemleri kullanıcının daha hızlı gerçekleştirebilmesi için kullanabileceği ikonları içerir. Bu ikonlardan herhangi biri üzerine götütürseniz mouse’yi bu ikonun gerçekleştireceği menü seçeneğinin ne olduğunu görebilirsiniz.

Özellikler Penceresi:O esnada ilgi odağı olan (seçilmiş, aktif)nesneye ait özellikler ve o andaki değerlerini listeler. Ekranda bu pencere yoksa View/Properties Window menü adımları ile çağırılabilir.

Proje Penceresi: o esnada aktif durumda olan proje ile ilişkili dosyaların listesini görüntüler. Bu dosyalar , projeye ait nesneler (form, kontroller vb) ya da bağımsız modüllere ait dosyalardır. Proje penceresi o esnada yoksa View/Properties Explorer menü adımları ile çağırılabilir.

Araçlar kutusu:Visual BASİC uygulamasını geliştirirken oluşturduğunuz projede kullanabileceğiniz Visual BASİC kontrol nesnelerini içermektedir. Eğer yoksa view /Toolbox menü adımları ile onu ekrana getirebilirsiniz.

ÖZELLİKLER PENCERESİ

Özellikler: penceresi, o esnada ilgi odağı olan (seçilmiş,aktif) nesnenin sahip olduğu özellikleri ve bu özelliklerin o andaki değerlerini görüntüler. Özellikler penceresini View /Properties Window menü yolu ile ya da F4 tuşuna basarak ekrana getirmek mümkündür.

Aşağıdaki özellikler penceresinin başlığı Form1’dir. Form1 başlık satırının bir alt satırında ise Form1 Form ibaresi görülmektedir.Bunun anlamı başlıklı nesnenin Form türünde bir nesne olduğudur. Özellikler penceresi bir kontrolün özelliklerini iki farklı diziliş sırasında listeleyebilir. Bunlardan ilki Alphabetic seçeneğidir. Adındanda anlaşılacağı gibi penceredeki özellikleri alfabetik olarak takip etme imkanı sağlar Categorized seçeneği ise özellikleri, Appearance (görünüş) behavior (davranış),DDE,FONT vb. bazı ortak gruplar altında listelemek için kullanılır.Özellikler penceresine dikkat edilirse, iki sütuna sahip olduğunu göreceksiniz. Bu sütunlardan soldaki özelliklerin adlarını (Caption, name, height vb), sağdaki ise bu özelliklerin o esnada sahip olduğu değerleri göstermektedir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image004.gif[/IMG]PROPERTİES (ÖZELLİKLER PENCERESİ)

MaxButton – MinButtom :Bu değerler mantıksal değerler alabilir. Mantıksal değerler(True-False). Her iki özellikte False durumunda iken boş oluşturulmuş bir formu çalıştırarak Sol üst köşesinden Ekranı kapla ve Simge durumunda küçült seçenekleri olmayacaktır. True yapılırsa tekrar gelecektir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image006.jpg[/IMG]

Height: Formun yüksekliğini artırmak ve azaltmak için kullanılır

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image008.jpg[/IMG]

Width:Bir formun genişliğini saklar. Bir önceki özellite tanımlar

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image010.jpg[/IMG]

Left ve Top: Bu özellikler, formun üst ve sol kenarları ile ekran arasındaki mesafeyi belirler. Top parametresi 0 ise, formun üst kenarı, ekranın üst kenarı ile çakışır Left parametresi 0 is, formun sol kenarı, ekranın sol kenarı ile çakışır.Yükseklik ve genişlik özelliği gibidir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image012.jpg[/IMG]

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image014.jpg[/IMG]

Projenin icrası esnasında, formun nasıl görüneceğini belirleyen bir özelliktir. 3 farklı değere sahip olabilir. Değeri 0 ise, bilinen normal form görüntüsü,Değeri 1 ise, formun bir ikona indirgenecektir,Değeri 2 ise form en büyük şeklini alır yani maksimize edilir-WindowState özelliği de, genellikle icra esnasında değiştirilir.Çalışmamız RUN edildiğinde büyüklük ve küçüklük oranı görülecektir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image016.jpg[/IMG]

BackColor:Formun zemin rengini belirleyen özelliktir.

Control Box:Değeri True ise , icra esnasında formun başlık satırının sol kenarında, işletim sistemine özgü bir kontrol menüsü çıkar. False yapılmışsa, icra esnasında bu kontrol menüsü ortaya çıkmaktadır.

Enabled:Özelliği True ise form meydana gelen olaylara duyarlıdır;False ise formun meydana gelen olaylara karşı duyarsız olması sonucu verecektir.Program run edildiğinde mouse ile yapılan hiçbir işlemi kabul etmeyecektir.

Font :Bu özellik ile ilişkili parametreleri ayarlayarak, form üzerinde görüntülenecek yazılara ait fontlar (MS Sans Serif, Courier vb), yazı sitilleri(İtalic,bold vb)ve yazı boyutları (size) belirlenebilir.

ForeColor:Bu özellik formun ön-plan rengini belirler. Kullanımı ve renk seçimi Backcolor özelliğindeki gibidir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image018.jpg[/IMG]

Mouse Pointer:İcra esnasında, form üzerinde görüntülenecek mouse göstergesinin(ekran göstergesi) biçimi belirler. Burada 0-16 değerleri alabilir. Burada programın çalışması sırasında mouse görüntüsünü görebilirsiniz.

MouseIcon:Mousepointer de ayarlanan 16 mouse göstergesini artırabilmek için kullanılır. Burada 99’a kadar çıkartılabilir.

Visible:Formun, projenin icrası esnasında, ekranda görünür olup olmayacağını belirler. Değer True ise form icra esnasında görünür, False ise icra esnasında görüntülenmeyecektir.

ScaleMode: Scalemode özelliği, form üzerinde kullanılacak koordinat sistemi için bir birim belirlemek imkanı sağlar. Bu özellik 8 farklı değer alır.

ScaleTop,ScaleLeft:Form üzerine nesneler yerleştirilirken, gözönüne alınacak olan koordinat eksininin başlangıcını belirleyen parametrelerdir.

Scaleheight,Scalewıdth:Kullanıcı formu ölçeklemek için kendi birimlerini kullanmak istemesi durumunda kullanılabilecek olan özelliklerdir.Forma eklenecek bir nesne için Form üzerinde bir yatay çizgi belirleyip Properties özelliğinde yükseklik ve genişliğini ayarlarsak nesne o aranda büyük veya küçük olarak forma eklenir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image020.jpg[/IMG]

BİR ÖRNEK PROGRAM

Visual Basic’in form penceresini Run ettiğimizde form penceresini mouse ile her tıkladığımızda “Halk Eğitimi Merkezi”yazıp bir alt satırına ‘Mouse’u iki kez tıklatın” yazmasını istiyorsak yapılacak işlem şunlardır.

1-Basit bir kod, bir procedure örneği oluşturalım .Form üzerindeyken Mouse’yi iki kez tıkla-tınız.Karşınıza Project isimli bir pencere gelecektir.Load yazan yerin (Proc kutusu)ok İşa-retini tıklatın ve oradakiDblClickseçeneğini seçip işlem satırına yazarız. Aşağıda olduğu gibi

2-Run menüsünden Start’ı seçerek kodu(projeyi)çalıştırınız.

3-Şimdi, ekran göstergesi form üzerinde iken, mouse sol tuşunu iki kez tıklatınız.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image023.gif[/IMG]

KONTROL NESNELERİ

Geliştirilen uygulamanın kullanıcı açısından kolay kullanılır ve sempatik görünümde olabilmesi için, kullanıcının uygulama ile karşı karşıya kalacağı diyalog pencerelerinin özenle tasarlanması gerekir.Kontrol nesneleri, standart kontroller ve dışardan eklenen kontroller olarak iki gruba ayrılabilir.

Standart kontrol nesneleri, Visual Basic’in yüklenmesi ile hemen kullanılabilecek olan kontrol nesneleridir.

Dışardan eklenen kontroller ise, standart nesnelerin sağladığı imkanların ötesine geçebilen, Microsoft firmasınca yada başka şirketler tarafından üretilmiş ve Visual Basic uygulamasına sonradan herhangi bir zamanda eklenebilecek nesnelerdir.

Her iki tip kontrol nesnesinin de müşterek özelliği, daha önceden kendilerine yüklenmiş belirli özelliklere sahip olmalarıdır.

FORM ÜZERİNE KONTROL NESNELERİNİ YERLEŞTİRMEK

Form üzerine kontrol nesneleri yerleştirmek, oldukça kolay olarak gerçekleştirilen bir işlemdir. Aşağıdaki şekilde gerçekleştirilir.

1)Form üzerine yerleşitirilecek olan kontrol nesnesi, mouse-click (sol tuşu bir kez tıklatma)işlemi ile araç kutusundan(Toolbox)seçilir.

2)Mouse yardımı ile, ekran göstergesi form üzerine getirilir. Mouse sol tuşu basılı tutularak mouse hareket ettirilerek kontrol nesnesinin form üzerinde arzu edilen büyüklüğe erişmesi sağlanır. Sonra mouse sol tuşu serbest bırakılır.

STANDART KONTROL NESNELERİ VE İŞLEVLERİ

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image025.jpg[/IMG]

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image027.jpg[/IMG] GÖSTERGE

Form üzerine aktarılıp görüntülenemeyen yegane kontrol nesnesidir. Form üzerine çizilmiş bir kontrol nesnesinin boyutunu değiştirmek veya bu kontrol nesnesini hareket ettirmek gerektiği zaman yararlanılır.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image029.jpg[/IMG] RESİM KUTUSU (PİCTURE BOX)

Resim kutusu nesnesi yardımı ile form üzerinde grafikleri görüntülemek mümkündür. Ayrıca, diskinizin herhangi bir dizini içinden çağıracağınız bir bitmap, ikon(icon) ,bir resimde yükleyebilirsiniz

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image031.jpg[/IMG] ETİKET(LABEL)

Etiket kontrol nesnesi, kullanıcı tarafından değiştirilemeyecek bir metni görüntülemek ya da icra esnasında uygulama tarafından değiştirilemeyecek bir metni görüntülemek amacı ile kullanılabilir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image033.jpg[/IMG] METİN KUTUSU(TEXT BOX)

Metin kutusu kontrol nesnesi iki ayrı amaç için kullanılabilir

1)Kullanıcı tarafından, uygulamanın icrası esnasında, bilgi girişi amacı ile

2)Uygulama tarafından üretilen bilgilerin ekranda, form üzerinde görüntülenmesi amacı ile

Metin kutusunun Properties penceresinde Multiline özelliği True haline getirilmelidir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image035.jpg[/IMG] ÇERÇEVE (FRAME)

Çerçeve nesnesi, form üzerine yerleştirilecek kontroller için görsel ve fonksiyonel anlamda bir grup oluşturma imkanı sağlar. Bu anlamda, çerçeve içine alınan kontroller, diğerlerinden kolayca ayırdedilirler.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image037.jpg[/IMG] KOMUT BUTONU(COMMAND BUTTON)

Komut butonu, kullanıcı tarafından seçildiği zaman, belirli bir işlemi yerine getirir. Bu işlem, kendisine bu olaya bağlı olarak yüklenmiş olan kod ile gerçekleştirilir. Komut butonu mouse yardımı ile bir kez tıklatma(click)işlemi gerçekleştirilebilir. Çeşitli diyalog pencerelerinde karşımıza çıkan OK ve CANCEL butonları komut butonlarına örnektir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image039.jpg[/IMG] KONTROL KUTUSU (CHECK BOX)

Kontrol kutusu, açma ya da kapama gibi ya da seçme ve iptal gibi ikili bir kontrole ihtiyaç duyulan uygulamalarda kullanılır. Kullanıcı , belirtilen seçeneği seçerse, kutu içinde bir işaret sembolü görüntülenir. Kullanıcıya Evet/Hayır gibi seçenekler vermek için kullanılır.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image041.jpg[/IMG] OPSİYON BUTONU(OPTİON BUTTON)

Option butonları bir grup halinde kullanılırlar. Bu grup içersinde, her buton bir seçeneği temsil eder. Kullanıcı seçtiği seçeneği, ilgili opsiyon butonunu işaretleyerek belirtir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image043.jpg[/IMG] KOMBİNE KUTU (COMBO BOX)

Bir kombine kutu, metin kutusu(text box) ve liste kutusunun (list box) özelliklerini bir araya toplar. Örneğin, kullanıcı metin kutusu gibi içine metin yazabilir ya da liste kutusu gibi, kutu içine yerleştirilmiş isimlerden istediklerini seçebilir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image045.jpg[/IMG] LİSTE KUTUSU (LİST BOX)

Liste kutusu, kullanıcının içinden bir ya da daha fazla isim seçebileceği bir liste içerir. Listeye yeni isimler eklenebilir ya da listedeki bazı isimler çıkartılabilir. Örneğin, bir liste kutusu ile çeşitli ülke isimlerini listeleyebilirsiniz Kullanıcı bir isim seçince, o ülke isimlerini listeleyebilirsiniz. Kullanıcı bir isim seçince, o ülkenin özellikleri listelenebilir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image047.jpg[/IMG] YATAY KAYDIRMA ÇUBUKLARI(HORİZONTAL SCROLL BARS)

Kullanıcıya, listeler içinde veya büyük miktarda bilgi boyunca yatay hareket imkanı sağlar. Bu anlamda, bir fonksiyonun değerlerinin görüntülenmesini, bir yatay hareket çubuğunun hareketi ile ilişkili olarak gerçekleştirebilirsiniz.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image049.jpg[/IMG] DÜŞEY HAREKET ÇUBUKLARI(VERTİCAL SCROLL BARS)

Düşey hareket çubukları, yatay hareket çubukları için söylenen işlemleri düşey olarak gerçekleştirirler.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image051.jpg[/IMG] ZAMANLAYICI (TİMER)

Uygulamanın çalışması esnasında, zamana bağlı olarak belirli aralıklarla, belirli eylemlerin gerçekleşmesini denetlemek amacı ile kullanılır.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image053.jpg[/IMG] SÜRÜCÜ LİSTELEME KUTUSU

İcra esnasında, geçerli sürücülerin bir listesini sunmak ve sürücüler arasında geçiş yapmak amacı ile kullanılır . Sürücü listeleme kutusu, bir dosyayı belleğe yüklemek (açmak-open)amacı ile oluşturulan bir diyalog penceresinin bir parçası olarak kullanılabilir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image055.jpg[/IMG] DİZİN LİSTELEME kutusu(DİRECTORY LİST BOX)

İcra esnasında, aktif durumdaki sürücünün yolunu(path)ve dizinlerini (Directories)görüntüler. Bu kontrol nesnesi, kök dizinden (root directory) seçilmiş bir yolu izleyerek hiyerarşik olarak

dizin listesini görüntületmek amacı ile kullanılabilir. Aynı zamanda doğal olarak bir dosya açma diyalog penceresinin bir parçası olarak ta kullanılabilir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image057.jpg[/IMG] DOSYA LİSTELEME KUTUSU (FİLE LIST BOX)

Verilen bir dizin içindeki tüm dosyaları listeler. Kullanıcı, listelenmiş dosyalar içinden bir dosya seçebilir. Bu kontrol nesnesi de, bir dosya açma diyalog penceresinin bir parçası olarak kullanılabilir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image059.jpg[/IMG] ŞEKİL (SHAPE)

Tasarım (desing)zamanında görünür olan bir kontrol nesnesidir. Tasarım esnasında, form üzerine , kare,daire,elips,dikdörtgen gibi şekilleri yerleştirmek amacı ile kullanılır.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image061.jpg[/IMG] ÇİZGİ(LİNE)

Çizgi kontrol nesnesi, tasarım esnasında, form üzerine yatay, düşey ya da eğik çizgi yerleştirmek amacı ile kullanılır. Çizgi kontrol nesnesi formu parçalara ayırmak amacı ile kullanılabilir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image063.jpg[/IMG] GÖRÜNTÜ (IMAGE )

Bir resmi görüntüleyebilen grafik tipte bir kontrol nesnesidir. Bu açıdan resim kutusuna (picture box) benzer. Fakat, resim kutusuna oranla daha az sistem kaynağı kullanılır. Mouse ile clicklendiği zaman, komut butonuna benzer özellik gösterir. Örneğin bir firma, firmanın logosunu görüntü nesnesi içine yerleştirerek, resim üzerine mouse ile click işlemi gerçek-leştirildiğinde firma hakkında bazı bilgiler listeleyen bir tanıtım yazılımı oluşturabilir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image065.jpg[/IMG] VERİYE ERİŞİM (DATA ACCESS)

Sistemde mevcut olan veri tabanlarına erişerek, bilgi güncelleme, edit ya da bilgi görüntüleme işlemlerinin yapılabilmesine olanak sağlar.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image067.jpg[/IMG] OLE İSTEMCİSİ (OLE CLİENT)

Nesneyi bağlama ve yerleştirme yöntemi, Windows işletim sistemince kullanılan yeni bir teknolojidir. Bu teknoloji sayesinde, bir windows uygulama programı (Mesela Visual Basic 6.0) ile geliştirilen bir proje içine başka bir windows uygulama programından nesneler aktarmak mümkündür.

Visual BASİC’TE VERİ YAPILARI VE VERİ TİPLERİ

Her programlama dilinde olduğu gibi Visual BASİC’te de çeşitli veri yapıları ve veri tipleri mevcuttur. Programcının dilin imkanlarına daha iyi hakim olabilmesi için bu yapıları tanıması zorunludur.

SABİTLER(CONSTANTS)

Program içinde değeri değiştirilemeyen, çeşitli tipteki veri yapılarıdır. Örneğin

1234 şeklindeki bir sabit , Visual BASİC açısından bir tam sayı sabittir. “5666” sabiti veya “Türkiye” sabiti ise string türü sabitler, çift tırnak sembolleri içinde yazılırlar ve matematiksel işlemlere sokulmazlar.

Visual BASİC’te çoğu kez, sabitlere bir isim atanarak, program boyunca, bu isimle çağırmak ta yaygın bir uygulamadar. Bu iş için Const bildiri sözcüğüne ihtiyaç vardır.

Örn: PiSayisi=3.14159

Sabit tanımlama sözcüğünün başına private ya da Public sözcükleri konularak, sabitin sadece tanımlandığı modülde ya da tüm modüllerde tanınması sağlanabilir.

Private Const BnSabit=60

Public Const BxSabit=80

Puplic: türü bildiriler, sadece standart modüllerin General kısmında tanımlanabilir. Private sabitler ise, her tür modülün General kısmında tanımlanabilir.

DEĞİŞKENLER(VARIABLES)

Programın akışı içerisinde, değerleri sürekli olarak değişebilen veri yapısıdır.

Örneğin x=23 y=12

X=x+3 y=y+x

Bu değişkenlere yeni bir değer atanırsa , bu değişkenin öncek değeri silinecektir.

DEĞİŞKENLERE İSİM VERME

Visual Basic 6.0 değişkenlere isim vermek için aşağıdaki kurallar geçerlidir.

1-Değişken isminin ilk karakteri bir harf olmalıdır.

2-Değişken ismi oluşturulurken, diğer karakterler, harf, rakam ya da alt çizgi (-) sembolü olabilir.

3-Kullanılan harflerin küçük ya da büyük harf olmasının önemi yoktur.

4-Değişken isim uzunlukları 255 karaktere kadar olabilir.

5-Değişken isimleri içinde diğer semboller(+,-,/ ,boşluk vb)bulunmamalıdır.

ÖRNEK: Geçerli Değişken İsimleri

MAAŞ

Yaş1

NetMaaş

Genel_Toplam

Geçersiz Değişken İsimleri

1X

A-1

Brut Maaş

DEĞİŞKEN TÜRLERİ

Bu bölümde, Visual BASİC değişkenleri için kullanılabilecek veri türleri tanıtılacaktır.

INTEGER(TAM SAYI):Bir değişkenin sonunda % sembolü varsa bu değişkenin türü integer olacaktır. Integer değişkenler, bellekte 2 Byte yer kaplar ve alacakları değerler –32768 ile +32767 aralığında olabilir. Integer türü değişkenlerle daha hızlı hesaplama yapılır.

ÖRNEK Deflnt A,B

D%=5678

A=789

B=50000’ Hatalı atama

LONG INTEGER (UZUN TAM SAYI)

Sonundaki sembol & sembolü olan ya da Deflng sözcüğü ile tanımlanmış olan değişkenlerdir. Bellekte 4 byte yer kaplarlar. Alabilecekleri değerler, -2,147,483,648 ile +2,147,483,647 aralığında olabilir.

Örnek: DefLng A-C Bu örnekte, DefLng A,B veya C olan tüm değişkenler

A=234555566 Long integer olarak tanımlanmıştır.

B=567777777

SINGLE PRECISION(TEK DUYARLIKLI)

Değişkenin sonunda ! sembolü varsa, veya DefSng bildiri deyimi ile tanımlanmışsa bu değişken tek duyarlıklı tipte değişkendir. Bu tip değişkenler, bellekte 4 Byte yer kaplar. Değer aralığı negatif sayılar için –3.402823E-38 ile 3. 402823E-45 arasındadır. Pozitif sayılar içinse bu aralık 1.401298E-45 ile 3. 402823E38 arasındadır. İlk 7 haneye kadar hassastırlar.

X!=12390638.234 şeklindeki bir atamada,sonraki 8.234 kısmı yuvarlanacaktır.

DOUBLE PRECISION(ÇİFT DUYARLIKLI)

İsmi sonundaki sembol # sembolü olan ya da DefDbl bildiri sözcüğü ile tanımlanmış olan değişkenlerdir.

STRİNG(KARAKTER ZİNCİRİ)

Sonunda $ sembolü bulunan yada DefStr bildiri sözcüğü tanımlanmış olan değişkenlerdir. Genellikle metin bilgileri için kullanılır.

ÖRNEK X$=Text12.Text

CURRENCY (PARASAL FORMAT)

Değişken ismi sonundaki sembol @ sembolü olan ya da DefCur bildiri sözcüğü ile tanımlanmış olan değişkenlerdir. Ondalık noktadan önce 15 ve ondalık noktadan sonra 4 hane olacak şekilde formatlanmıştır.

DATE(TARİH)

Tarih ve zaman türündeki bilgileri saklamak için kullanılan değişkenlerdir. 1 Ocak 100 ile 31 Ocak 9999 arasındaki zamanlar için kullanılır.

ÖRNEK: DefDate T

Tar=#February 3,1996#

BYTE

Byte değişken türü, Visual BASİC 6.0 ile gelmiş bir yeniliktir. 0 ile 255 arasındaki işaretsiz tam sayıları saklamak için kullanılır.DefByte bildiri sözcüğü ile tanımlanır.

BOOLEAN

DefBool olarak tanımlanır. Sadece Doğru (True) Yanlış(False) değerlerinden birini alabilir.

VARİANT

DefVar olarak tanımlanmıştır. Bir değişken için hiçbir tip bildiriminde bilinilmamışsa, tipi Variant olarak kabul edilir. Her türlü bilgi (Date,numerik,string)yüklenebilir. Variant tipi bir değişken içine hangi tip veri yüklendiği ise IsNumeric,IsDate vb gibi kontrol edilebilir.

KULLANICI TARAFINDAN BELİRLENEN VERİ TİPİ(USER DEFINED TYPES)

Çeşitli değişkenleri bir araya getirerek bir isim altında toplamak! Elde edilen bu yeni veri tipine Kayıt(Record) adı verilir. Bir kayıt tanımlamak için önce bir kod modülünün Declarations kısmında aşağıdaki gibi bir bildirimde bulunulur:

Type PerKayıt

Sicil As Integer

Ad As String*10

Soyad As String*12

Brut As Double

Adres As String *50

End Type

Daha sonra herhangi bir form ya da modülün Declarations kısmında

Private Per As PerKayıt veya

Puplic Per As PerKayıt

Şeklinde bildirimde bulunulursa PerKayıt ile tanımlanmış bir şablon veri yapısı türünden Per adlı gerçek bir veri tanımlanmış olur.

Private per As PerKayıt

per.Sicil = 123

per.Ad = "ahmet"

per.soyad = "Caner"

TİP BİLDİRİMİ İÇİN DİM DEYİMİ

İyi bir program oluşturmak için, değişkenlerin tiplerini önceden bildirmek faydalı bir alışkanlıktır. Tip bildiriminde bulunulmazsa değişkenin tipi variant olarak kabul edilir ve gereksiz yere bellek kullanılır. Değişkenlerin tipini belirtmek için alternatif bir yol Dim deyimini kullanmaktadır;

Dim x As İnteger

Dim y As Currency

Dim z As String

DEĞİŞKEN İSİMLERİNE GÖRE TİP ATAMA

Def tipi bildirim komutları aşağıdaki örneklerdi gibidir.

ÖRNEK : DefInd A-D Bu ifade ile A,B,C,D harfleri Integer olarak tanımlanmıştır

DefDate S,T S ve T harfleri ile başlayan değişkenler Date türünden tanımlanacaktır.

PROSEDÜRLER ARASI MÜŞTEREK DEĞİŞKENLER

Bazı değişkenlerin,prosedürler arasında müşterek kullanımı gerekebilir. Bu tip müşterek kullanılabilen değişkenlere form düzeyinde veya modül düzeyinde değişkenler denir. Form düzeyinde değişken tanımlamak için, formun General,Declaration bölümüne, bu değişkenleri Dim deyimi ile yerleştirmek gerekir. Burada tanıtılan tüm örnekler bütün prosedürler tarafından kullanılacaktır.

ÖRNEK: [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image069.jpg[/IMG]

PRIVATE SÖZCÜĞÜ

Private sözcüğü ile, form düzeyinde değişkenler belirleyebilirsiniz. Formun General, Declaration kısmında Dim yerine Private sözcüğünü kullanarak ta değişkenleri form düzeyinde geçerli kılabilirsiniz.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image071.jpg[/IMG][IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image073.jpg[/IMG]

Project penceresindeki Dim komutunun yerine Static komutunu yerleştirirseniz programı her RUN edişinizde rakamları unutmadan üzerine 10 koyarak toplar. SABİT UZUNLUKLU STRİNGLER

Sabit uzunluklu string tanımlamak, bası uygulamalar için gerekli olabilir.

Dim ad As String * 8

Ad değişkeni 8 karekter uzunluğundadır.

BİRDEN ÇOK FORM İLE ÇALIŞMA

Uygulamamızın kapsamı genişledikçe, tek form üzerinde tasarım yapmak imkansız hale gelebilir. Bu durumda doğal olarak projemize yeni bir form eklememiz gerekecektir.(Form1-Form2). Bunun için Project menüsünden Add Form seçeneğini kullanmanız gerekecektir.

FORMLAR ÜZERİNDE UYGULANABİLEN METOTLAR

Bu bölümde, özellikle çok sayıda form kullanıldığında, kullanılması zorunlu olacak bazı form metotları açıklanacaktır.

SHOW METODU

Formun ekranda görüntülenmesini sağlar. Yazılış biçimi

FormAdı.Show şeklindedir.

LOAD METODU

Formu bellege yükler fakat ekranda görüntülemez. Yazılış biçimi

Load . FormAdı şeklindedir.

HIDE METODU

Formu ekrandan uzaklaştırır fakat bellekten silmez!Yazılış biçimi,

Form.Adı.Hide şeklindedir.

UNLOAD METODU

Formu bellekten siler. Bu durumda, form düzeyinde atanmış olan tüm bilgi silinecektir. Yazılış biçimi,

Unload.FormAdı şeklindedir.

Visual BASİC’te SAYILAR VE ARİTMETİKSEL İŞLEM OPERATÖRLERİ

Bir tamsayı değişkenine, bir ondalik sayı atanırsa, otomatik olarak yuvarlatılır. Örneğin,

Dim x As Integer

X=123.789 ataması sonucu x 124 değerini alır.

String türü bir bilgi numerik olarak kullanılacaksa VAL fonksiyonu ile dönüştürülür. Örneğin,

X=12*”120” ifadesinin hatalı olmasına rağmen

X=12*VAL(“120”) ifadesinin sonucu ise 1440 olacaktır .

VAL burada “120” değeri tırnak içine alındığı için karakter olarak tanınmıştır ama VAL komutu bunu sayısal bir değere çevirmiştir

STR Numerik bir ifadeyi Stringe yani karaktere çevirir. Pozitif sayıları dönüştürürken önlerine bir bşluk yerleştirilir.

ÖRNEĞİN STR(1280) ifadesinin sonucu “ 1280) stringi olacaktır.

FORMAT fonksiyonu ile, sayılar belirli bir forma dönüştürülerek görüntülenebilirler. Örneğin

S1$=Format(2457.9,”##,##0.00”) ifadesi ile S1$ stringi, “2,457.90” şeklinde

S2$=Format(876.9,”###0.00”) ifadesi ile S1$stringi,”2,457.90” şeklinde

S3$=Format(7.”0.00%”) ifadesi ile de S3$ stringi “700.00%” şeklinde olacaktır.

TARİH TÜRÜ DEĞİŞKENLERLE İŞLEMLER

Tarih türü değişkenler üzerinde de aritmetiksel işlemler tanımlanabilir. Örneğin,

Dim tar As Date print bar ifadeleri ile, tar değişkenine, bulunulan günün tarihi atan-

Dim bar As Date makta,ilk print ile bulunulan günden 7 gün önceki ve ikinci print

tar=Now ile de, bulunulan günden 7 gün sonraki günün tarihi yazdırılacak.

bar=tar-7

Print bar

Bar=tar+7

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image074.gif[/IMG]

(X+8)

X+5

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image075.gif[/IMG][IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image076.gif[/IMG]ÖRNE K Y= 3

İfadesini, x‘in klavyeden girilecek değeri için hesaplatın yazdıran bir uygulama geliştiriniz.

ÇÖZÜM

1-Form üzerine bir komut butonu yerleştiriniz. Bu butonu seçerek Properties penceresini getiriniz ve

Caption özelliğini seçerek bu özelliği HESAPLA olarak değiştiriniz.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image078.jpg[/IMG]

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image080.jpg[/IMG]

2- komut butonu yukarıdaki pencerede belirtilmiştir.

3-Daha RUN ederek çalıştırınız. Sonuç yukarıdaki penceredeki gibidir.

BİLGİ GİRİŞ VE ÇIKIŞI KONTROL KOMUTLARI

InputBox(MESAJ) FONKSİYONU

Visual BASİC programının icrası esnasında, klavyeden bilgi girişi yapılmasını sağlayan bir fonksiyondur. Mesaj kısmı kullanılmışsa bu kısım , bilgi giriş penceresinde aynen görünecektir. Bilgi girişinde girilen bilgi string (karakter zinciri) türünde kabul edilir. Eğer nümerik olarak kullanılacaksa VAL fonksiyonu ile nümeriğe dönüştürülmelidir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image081.gif[/IMG] MESAJ

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image083.jpg[/IMG][IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image085.jpg[/IMG][IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image087.jpg[/IMG]

MsgBox Mesaj, Görünüm, Başlık KOMUTU

Bir programın çalışması sonucu elde edilen bazı sonuçları ya da gerekli mesajları ekrana aktarmak için kullanılır. Görünüm parametresinin kullanımı zorunlu değildir.

ÖRNEK:Bir üstde kullanılan örnek bunun için geçerlidir.

KULLANICI İLE ETKİLEŞİMLİ MESAJLAR- MsgBox() FONKSİYONU

Pekçok uygulamada, ekrana yazdırılan mesaj sonucunda kullanıcının mesajı pasif olarak izlemesinden ziyade mesaja aktif olarak cevap vermesi ve bu cevaba göre de bir işlem yapılması söz konusu olmaktadır Bu tür bir işlemi gerçekleştirebilmek için MsgBox fonksiyonu kullanılır. Fonksiyonun yazılış biçimi aşağıdaki gibidir:

Cevap%=MsgBox(Mesaj$,Görünüm%,Başlık$)

Visual Basic 6.0 Proje Tasarım Penceresine Bakış

Salı, 06 Kasım 2007

Visual BASİC 6.0 PROJE TASARIM PENCERESİNE BAKIŞ

Visual BASIC 6.0 açıldığı zaman karşınıza ekran görüntüsü gelecektir.

Örnekler Standard EXE projeleri ile oluşturulacaktır. Visual basıc tasarım penceresi açıldığında göze ilk çarpan önemli özellik tasarım ortamının MDI modunda açılmasıdır

MENÜ SATIRI: 11 adet ana menü başlığı ve herbirinin alt menülerini içerir. Visual BASIC ortamında proje(yazılım) geliştirirken yararlanılabilecek çeşitli fonksiyonları vardır.

KONTROL NESNELERİ: Visual BASIC ortamına önceden yerleştirilmiş neslerdir. Bu kontrollerden gerekli olanları form üzerine taşınır ve yazılım icrası esnasında istenilen fonksiyonları yerine getirebilmeleri için bu kontrollere bağlı bilgisayar programları(kodlarcodes) da oluşturulur.

FORM: Visual basıc pojesinin temel nesnesidir. Proje ile ilşkili tüm nesneler form üzerine yerleştirilir. Bir projede, gerekiyorsa birden fazla form da bulunabilir.

PROJECT: O anda aktif formla ilişkili olarak bazı işlevleri yerine getirir. Pencere başlığının hemen altında iki guruba ayrılmış üç buton bulunur. Bunlardan View code butonu seçilirse , o

esnada aktif olan nesneye bağlı olarak oluşturulmuş bilgisayar programı(kodu) görüntülenir.

View Object butonu seçilirse de, bu durumda tasarım aşamasında o an için seçilmiş olan nesne x

görüntülenecektir.

Tolggle Folders butonu ile ise proje içinde kullanılan genel maksatlı modüller, ormlar, ınıflar ve kaynak dosyaları gibi proje bileşenleri bir dizin mantığı içinde ayrıntılı veya toplu halde görüntülenir.

ÖZELLİKLER : o anda aktif durumdaki (seçilmiş) Visual BASIC kontrolünün tüm özellikleri görüntülenir.

IMMEDIATE: breake modda (tasarım ortamında program akışının kesilmesi) otomatik olarak boş olarak açılır.Debug,reset ve komut satırındaki işlemler uygulanabilir veya program akışını kalındığı yerden devam edilebir.

LAYOUT: Formların ekrandaki pozisyonlarını mouse yardımı ile ayarlanabilir.

MENÜ SATIRI

FİLE(DOSYA) MENÜSÜ:

New project:Yeni bir Visual BASIC projesi başlatmak amacı ile kullanılır.

Open Project:Daha önceden diskte saklamış olduğunuz bir VB uygulamasını tekrar aktif hale getirir.

Add Project:Proje penceresi birden fazla proje içerdiğinde ikinci bir projeyi ekler.

Remove Project:Aktif uygulamamız içindeki bir projeyi uygulama içinden çıkarmak için kullanılır.

Save Project Group:O esnada uygulamada kullanılan proje ve projelerle ilişkili tüm dosyaları ve ilişkili Visual BASIC bilgilerini tek bir isim altında saklamak amacı ile kullanılır. Bir kez kayıt edilince group yazısı bir daha gelmez.

Save Project Group As:Aktif çalışılan bir projeyi son hali ile diskten farklı tüm uygulama bileşenlerini yeni bir isimle saklamayı saglar.

Save (Form1)Dosya İsmi :Sadece o esnada aktif proje penceresinde seçilmiş olan bir nesneyi saklar.

Save (Form1)Dosya İsmi As: Daha önce saklanmış olan bir dosya yeni bir isimle yeniden saklanabilir.

Print:Project ile ilgili istenilen (kod sayfasını,formu) bölümleri yazıcıya gönderir.

Print Setup:Uygulamanızı yazıcıya aktarma durumunda yazıcı tipini, yazıcıdaki kagıt baskısını,yatay,dikey durumunun ayarı.

Make Project..exe:Çalıştığımız Visual Basic uygulamasını EXE haline çevirerek Visual BASIC ortamından bağımsız çalışılmasını sağlar.

Make Project Group:Uygulamamız birden fazla project içeriyorsa görüntülenir. Uygulamanızda oluşturmak istediğiniz projeleri seçmenizi sağlar.

Exıt:Visual BASIC ortamından çıkışı sağlar.

EDİT MENÜSÜ

Undo Delete(Gerial):Yapılan son işlemi geri alır.

Can’t Redo(Yinele): Geri alınan işlemi tersine çevirir.

Cut(Kes): Seçilen alanı silip panoya alır.

Copy(Kopyala): Seçilen alanı panoya kopyalar.

Paste(Yapıştır):Panodaki bilgileri yazdırır.

Paste Link(Özel Yapıştır):Panodaki bilgileri istenilen biçimde yapıştırır.

Delete: Seçilmiş metin yada nesneyi siler.

Select All: Aktif kod penceresindeki bütün kodu veya form üzerindeki bütün kontrolleri seçmek için kullanılır.

Find(Ara): Visual BASIC kodu içerisinde bir metni aramak için kullanılır.

Find Next(Aramaya Devam): Find ile yapılan arama işlemine kaldığı yerden devam etmek için kullanılır.

Replace(Değiştir): Bir metin içinde bir sözcüğü aratıp, bulunduğu takdirde başka sözcükle değitirmek.

Indent(Tab):Tab tuşunun görevini yapar.

Outdent(Shift Tab): Tab tuşunun ilerlettiği sutun miktarı kadar sola kaydırır.

Insert File(Dosya Birleştir): Çalışılan kod sayfasının içerisine başka bir dosyada bulunan kodu eklemek için kullanılır.

List properties/Methods: Kod penceresine her uygun ifadenin ardından bu ifadeden sonra yazılabilecek mümkün diğer ifadeleri içeren bir yardım kutucuğu görüntüler.(data1. sonra gelecek menü)

List Constants:Kod penceresinde,yazılan ifadenin alabileceği sabit değerleri içeren yardımcı bir pencere görüntüler.

Quick Info: Kod penceresinde seçilen fonksiyonların,metodların,prosedürlerin ve değişkenlerin yazılımını gösteren yardımcı bir pencere görüntüler..

Parameter Info: Kod penceresinde yazılan veya ifadelerin ,çerdikleri parametreleri gösteren yardımcı bir pencere görüntüler.

Complate Word: VB, yazmakta olduğunuz ifadeden kelimeyi bulmaya çalışır. Ve kullanmanızı sağlar.

Go to Row: Satıra git (Birinci,Önceki,Sonraki,Yeni)

Bookmark:Program kodunun çok sık kullanıldığı satırlarına kolay bir şekilde ulaşmak için kullanılır.

VİEW MENÜSÜ

Code: O esnada seçilmiş olan form ya da modülün Code Penceresini(prg. Yazıldığı pencere)görüntülemek amacı ile kullanılır.

ObJect: Aktif kod ile ilişkili olan nesneyi(form gibi)görüntülemek için kullanılır.

Definition: Form yada modülün Code Penceresinde kürsörün bulunduğu aktif prosedüre ait kod penceresini görüntüler.(Recordset,Data1)

Last Position: Kod penceresinde en son noktaya yeniden sıçrama yapmak istediğinizde kullanılır.

Object Browser: Bu seçenek ile Object Browser(Nesne Gözatıcısı)penceresi ekrana gelir.

Immediate Window: Bu menü alternatifi ile Immediate (hata ayıklama penceresi) ekrana gelecektir.

Locals Window: O esnada aktif prosedürde ki bütün değişkenleri ve değerlerini gösterir.

Watch Window: B-Break Modda, daha aönceden gözlem amacı ile tanımlanmış değişken ya da ifadenin o andaki değerini görüntülemek için kullanılır.

Calc Stack: Projeniz içinde, o esnada aktif olan prosedür çağrılarının listesini gönderir.

Project Explorer:Project (proje) başlıklı pencereyi ekrana getirir.

Properties Window: Properties(Özellikler) başlıklı pencereyi ekrana getirir. Bu pencerede o esnada aktif olan nesne için geçerli olan özelliklerin bir listesini ve bu özelliklere o esnada atanmış olan değerleri incelemek mümkümdür.

Form Layout Windowaha öncede söylendiği gibi Layout penceresinde Formların ekrandaki pozisyonları mouse yardımı ile ayarlanabilir.

Property Pages: Tasarım ortamında kullanıcı tarafından oluşturulmuş bir kontrolün özelliklerinde değişiklik yapmak amacı ile özellik sayfalarını listeler.

Table

Zoom

Show Panes

Toolbox:Araç kutusunu görünür hale getirir.

Color Palette:Seçilmiş Visual BASIC nesnelerinin renklerini değiştirmek üzere, renk paletini ekrana getirir.

Toolbar:Visual BASIC kullandığı araç çubuğu gruplarından biri ekranda görüntülenebilir veya silinebilir.

PROJECT MENÜSÜ

Add Form:Aktif projenin içine yeni veya mevcut bir form katmak için kullanılır. (Form1 varken Form 2 ye geçilebilir.)

Add MDI Form: Bu menü alternatifi ile bir Multiple Document Interface (çoksayıda Doküman İçeren Arayüz) oluşturulabilir veye mevcut bir MDI formu uygulamaya ekleyebilirsiniz.

Add Module: Visual Basic/in bir forma ya da nesneye bağlı olmayan ve uygulamanın tüm bileşenleri tarafından kullanılabilen kodların modul adı verilmektedir.

Add Class Module: Bu menü alternatifi ile Sınıf Modülü (Class Module) denilen özel tipte bir modül oluşturmak mümkün olmaktadır. Sınıf modülünde, projenin tüm bileşenleri tarafından kullanılabilecek bir sınıf ile ilişkili tanımlar bulunabilir.

Add User Control: Sadece kendi projenizde kullanabileceğiniz ActiveX kont- rolleri oluşturmak için kullanılır. Active X kontrollerini başka tasarım ortam-larında da kullanmak için projenizi ActiveXConrol olarak başlatmanız gerekir.

Add Property Page: Oluşturduğunuz ActıveX kontrolleri için Özellik sayfası isimlendireceğimiz Property Page/ler oluşturmak için kullanılır.

Add User Document: Bu menu komutu Standart EXE modülü dışındaki proje modülleri ile beraber kullanılır. Projeye yeni yeni bir ActiveX dökümanı eklemek için kullanılır.

Add File: Daha önceden hazırlanmış genel maksatlı modüller, formlar, sınıf modülleri ve kaynak dosyalar gibi bileşenleri, o esnada aktif olan projenizin içine katma imkanı sağlar.

Remove (Dosya Adı)Form..(1,2,3) : Aktif projenizin içindeki bir dosyayı bu proje içinden çıkarma imkanı sağlar. Çıkarılan dosya disketten silinmez.

References: Projenizin içerisine başka uygulama programları ya da nesne kütüphanelerinden nesneler katma imkanı sağlar.

Components: Visual BASIC’te kullanabileceğimiz kontrol nesnelerinin sayı ve çeşidini arttırmak ve DLL uzantılı tasarımları projeye eklemek amacı ile kullanılır.

Project1 Properties: Visual BASIC projesi ile ilgili düzenlemeler yapmak için kullanılır. Diyalog penceresinin BAŞLIK ÇUBUĞU, Project Explorer penceresinde seçili aktif projenin ismini gösterir.

FORMAT MENÜSÜ

Aling:Form üzerinde seçilmiş nesnelerin pozisyonları,enson seçilen nes-neyi referans alacak şekilde aşağıdaki alternatifler bazalınarak hizalan-dırılır.

Left sol,Centers ortala,Tops Üst köşe,Middles üst alt orta noktaları eşit, Buttoms Alt köşe,To Grid en yakın Grid üst köşe noktası

Make Same Size: Bu menü alternatifi ile seçilen nesnelerin boyutlarında ayarlama yapılır.

Width Genişlik,Height Yükseklik,Both seçilen nesnelerin boyutları referans alınan nesne ile aynı yapılır

Size To Grid Seçilen nesneleri otomatik olarak formun en yakın grid noktalarına yerleştirir.

Horizontal Spacing Seçilen nesnelerin kendi aralarındaki yatay boşluklar istenilen alternatiflere göre ayarlanır.

Make equal:Seçilen nesnelerin kendi aralarındaki yatay boşlukları eşit hale getirir.

Increase:Seçilen nesnelerin kendi aralarındaki yatay boşluğu, kabul edilen bir grid hücresinin eni kadar artırır.

Decrease:Seçilen nesnelerin kendi aralarındaki yatay boşluğu kabul edilen bir grid hücresinin eni kadar azaltır.

Remove:Seçilen hücrelerin kendi aralarındaki yatay boşlukları kaldırır.

Vertical Spacing: Yukarıdaki menü seçeneğine eşdeğer bir fonksiyonu vardır. Sadece boşluk ayarlamaları düşey noktada yapılır.

Center in Form:Seçilmiş nesne grubu, bu grubun içindeki en dış nesnelere göre form üzerinde ortalanır.

Horizontaly: Seçilmiş nesne grubu içinde en sol dışdaki nesne ile en sağ dışdaki nesnenin, sırası ile üst ve alt köşe noktalarına göre tüm seçilmiş nesneleri yatay olarak ortalar.

Verticaly: Seçilmiş nesne grubu içinde en üst dışdaki nesne ile en alt dıştaki nesnenin,sırası ile üst ve alt köşe noktalarına göre bir ayarlama yapılır.

Order:Order menu seçeneği ikiye ayrılır.

Bring to Front:Seçilmiş olan nesneyi, formda mevcut diğer nesnelerin önüne getirir.

Send to Back: Seçilmiş olan nesneyi, diğer nesnelerin arkasına yerleştirir.

Lock Controls:Form üzerindeki kontrolleri, bulundukları pozisyonda kilitler.Öyle ki, kontroller bu komuttan sonra form üzerinde hareket ettirilemez.

DEBUG MENÜSÜ

Step Into:Tasarım esnasında Visual BASIC kodundaki o esnada kürsörün İşaret etmiş olduğu komutu çalıştırır.

Step Over: Step info komutuna benzer. Farkı, icra edilen aktif komutu, bir prosedür çağırma komutu ise, o prosedür tek bir komut gibi bütünü ile icra edildikten sonra, esas koddaki bir sonraki deyime geçilir.

Step Out: O esnada icra edilen fonksiyonun içinde kürsörün işaret etmiş olduğu komuttan itibaren bütün komutlar çalıştırılır ve fonksiyonun çağrıldığr esas kodda bir sonraki deyime geçilir.

Run To Cusor: Gene sadece tasarım anında kullanılabilecek bir komuttur. Programın icrası durmuş iken(Break Mode) icrayı yeniden başlatarak bir sonraki durma noktasının hangi komut olacağını belirler.

Add Watch:Bir değişken yada ifadenin programın icrası esnasında hangi değerleri aldığını izlemek üzere bir gözlemci mekanizma kurar.

Edit Watch: Gözlemci tanımı ile ilişkili değişiklik ya da düzeltme yapmak gerektiğinde kullanılır.

Quick Watch:Brake modda üzerinde durduğu değişkenin, özelliğin veya başka bir ifadenin değerini gösteren bir diyalog penceresi görüntüler.

Toggle Breakpoint:Tasarım esnasında kullanılabilen bir komuttur. Kod üzerinde ki durma noktalarını belirlemek için kullanılır.

Clear All Breakpoints:Toggle breakpoint komutu ile yerleştirilmiş olan bütün durma noktalarını iptal eder.

Set Next Statement:Sadece Break modunda kullanılabilir. Break moduna şu durumlarda erişilir.

Show Next Statement:Gene sadece break modda kullanılabilecek bir komuttur. İcra edilecek bir sonraki deyimi gösterilir.

TOOLS MENÜSÜ

Visual Data Manager: Bu menü alternatif, Visual BASIC içine, veri tabanlarının yönetimi konusunda çok yetenekli bir yazılım modülü olan

Visual Data Manager’ın eklenmesini sağlar.

Add-In Manager:Bağımsız yazılım modüllerinin Visual Basic ortamına katılmasını ya da bu ortamdan çıkarılmasını sağlar.

ADD-INS MENÜSÜ

Start:Geliştirdiğimiz projeyi icra etmek amacı ile kullanılır.F5 kullanılır.

Start With Full Compile:Start komutu ile Visual Basic sadece aktif kodu ve ilişkili kısımları derler. Belli bir anda projenizin tümünün derlenerek çalıştırılması istiyorsanız bu alternatifi seçmelisiniz.

Break:Normal akışını sürdüren programı durdurur ve programın çalışmasını breake modda sürdürülür.

End:İcra edilen programı durdurarak Visual BASIC’in kullandığı tüm sistem kaynaklarını iade eder.

Restart: İcrası durdurulmuş olan programın yeniden icra edilmesini sağlar.

Add Procedure:Kod penceresi içine bir prosedür yerleştirmek amacı ile kullanılır.

Procedure Attributes:Belirtilen herbir özellik veya metod için ayarlamalar yapabileceğiniz veya mevcut attribute’leri(nitelikleri) gözlemleyebileceğizi bir diyalog penceresi görüntüler.

Menu Editor:Geliştirdiğiniz uygulama içinde Visual BASIC ve Windowsun menülerine benzer şekilde menüler oluşturmak istediğinizde Menü Editörü size büyük kolaylık sağlayacaktır.

Options: Bu menü seçeneği kullanılırsa Visual BASIC ortamında çalışırken mevcut olan çeşitli sistem parametrelerini değiştirmek imkanı sağlayan diyalog penceresi karşınıza gelecektir.

WİNDOW MENÜSÜ

Split: Sadece kod penceresi(programın yazıldığı pencere)açık iken aktif olur. Kod penceresini yatay olarak ikiye ayırır.Eski hali için split seçilir.

Tile Horizontally:MDI modda,açık pencereleri yatay olacak şekilde eşit pencere boyutlarında ekrana yerleştirir.

Tile Vertically:Yukarıdaki menü seçeneği ile eşdeğerdir. Farklı olarak pencere ayarlamaları düşey olacak şekilde gerçekleştirilir.

Cascade:MDI modda, açık pencerelerin ekrandaki yerlerini üst üste cascade bir tarzda yeniden ayarlar.

Arrange Icons: MDI modda minimize edilmiş pencere ikonlarını anapencerenin alt sol köşesine göre yeniden düzenler.

WindowList: Bütün açık pencereleri listeler. Aktif yapılmak istenen pencere seçilirse ilgili pencere isminin sol yanında o esnada atif pencereyi gösteren işareti gözükecektir.

HELP MENÜSÜ

Visual BASIC konuları hakkında yardımcı bilgiler sunar.

Bölüm 1

Salı, 06 Kasım 2007

BÖLÜM 1

1.ÜÇÜNCÜ BOYUT

1.0 Giriş

İnsanlar ilk çağlardan bu yana çevresinde bulunan cisimleri, meydana gelmekte olan olayları diğerlerine anlatabilmek için resim,heykel ve yazı gibi vasıtaları kullana gelmiştir. İnsanlık, ilerleyen zaman içerisinde, teknolojinin de gelişmesinin etkisiyle, cisimlerin temsili yapılırken ne kadar çok gerçekçi olunursa, o kadar etkili bir temsil ortaya çıkacağını anlamış ve bu yönde çalışmalarını ilerletme yolunu seçmiştir.

Günümüze geldiğimizde ise insanların hayatında, bir iletişim aygıtı olan bilgisayar, bir çok alanda yer almıştır. Bilgisayarın bir çok alanda kullanılmaya başlanmasıyla , cisimlerin, olayların kısacası bilgisayar ekranından insanlara ulaştırılmak istenilen her şeyin günlük hayattaki gibi gerçek olması yani üçboyutlu olarak görüntülenmek istenilmesi kaçınılmaz hale gelmiştir.

İnsan çevresinde bulunan her türlü nesneyi üç boyutlu olarak görüp algılamaktadır. Göz, yapısında bulunan katmanlar yardımıyla cisimlerden yansıyan ışıkları algılayarak beyne iletmekte ve böylelikle bizler çevremizdeki cisimlerin renk,şekil ve derinlilerini algılayabilmekteyiz. Cisimlerin renk ve şekillerine ek olarak derinlikleri de işin içine girince üçüncü boyut denilen olay ortaya çıkmaktadır. Öyleyse diyebiliriz ki insanın direkt olarak nesneleri algılamasında herhangi bir sorun söz konusu değildir. Fakat insan bir monitör aracılığıyla bu işi yapmak istediğinde ise nesnelerin derinliği yani üçüncü boyutu ile ilgili bir sorun ortaya çıkmaktadır. Bu sorun görüntülemek istediğimiz nesnelerin üç boyutlu olmasına rağmen kullandığımız monitörlerin ise iki boyutlu cihazlar olmasıdır. Bu durum, bilgisayar grafiklerinde ekrandaki geometrik modellerin görüntülerinin insan beyninde üç boyutlu gerçek görüntü hissini vermesi veya insanını onu gerçek sanmasını amaçlayan Sanal Gerçeklik(Virtual Reality) konusunun ortaya çıkmasına gerekçe olmuştur.

Bilgisayar ekranında bir bilgisayar modeli oluşturduğumuzu düşünelim bu modelin her bir koordinatını bilmemiz gerekir. Ancak bu koordinat, cismin kendi koordinat sisteminde doğru olması gerekmektedir. Kendi koordinat sisteminde tanımlanan cisim daha sonra ekran koordinat sistemine, kamera koordinat sistemine veya dünya koordinat sistemine aktarılarak görüntü oluşturulur.

Derinlik oluşturma ise z ekseninde gerçekleşen hareketlerde cismin diğer iki koordinatının etki alıp yeni konum belirlenmesi sonucu oluşur. Yapılan bu işlemler neticesinde ekranda bulunan cisme üçüncü bir boyut yani z ekseni eklenilerek cisme üç boyutlu bir görünüm kazandırılmış olur.

BÖLÜM 2

2.ÜÇ BOYUTLU GRAFİKLER İÇİN TEMEL İŞLEMLER VE TANIMLAMALAR

2.0 Giriş

Bilgisayarda bir nesne görüntüsünün çizilebilmesi ve bu görüntü üzerinde çeşitli matematiksel dönüşümlerin uygulanabilmesi için nesnenin tanımlanması , seçilen uygun bir koordinat sistemine göre noktalar ve bunları birleştiren doğrularla yapılır. Nesne üzerinde herhangi bir dönüşümün gerçekleştirilebilmesi bu doğrunun bu noktalar kullanılarak yapılır. Örneğin nesnenin büyüklüğünün değiştirilmesi , bir yerden başka bir yere taşınması , nesnenin döndürülmesi ve perspektifinin oluşturulması gibi nesneyi tanımlayan noktaların her birine bu dönüşüm işlemlerinin ayrı ayrı uygulanması ile yapılır. Bu dönüşümler bilgisayarda grafik düzenlemelerin temelini oluşturur. Borland grafik paketi , programcıya sadece çizimlerde kullanılan temel ve yardımcı komutları verir. Nesne üzerinde dönüşümleri gerçekleştirmek için kullanılabilecek herhangi bir komut içermez.

Dönüşümler iki üç boyutlu nesneler için uygulanabilir matematiksel formüllerdir. Bilgisayarın ekranı iki boyutlu olarak çalışmak zorundadır. Üç boyutlu nesnelerin ekranda görüntülenmesi , nesnenin boyutunun bir azaltılmasıyla gerçekleştirilir. Boyutun azaltılması ise nesne görüntüsünün ekran düzlemi üzerine iz düşürülmesiyle yapılır. (Erdun 1993)

Bilgisayar yardımıyla bir resmin tasarlanması için ekran üzerindeki noktalar kullanılır. Bazı dönüşüm işlemleri yardımıyla yüzeylerin oluşturulması için bir araya toplanmış noktalar kullanılır ve canlı resimler elde etmek içinde bu yüzeylerden faydalanılır .

2.1Geometrik Tanımlamalar

2.2. 1 Nokta tanımlaması

Uzayda bir yeri belirten sıfır boyutlu nesnelere nokta denir. Noktalar kullanarak doğrular ve doğrular kullanarak da çeşitli nesnelerin çizimi yapılabilir. Noktalar iki ve üç boyutlu olarak koordinat sisteminde gösterilebilir(Şekil 2.1)

Matematiksel olarak ise nokta bir matris şeklinde gösterilebilir . Noktaların matris şeklinde tanımlanması dönüşüm işlemlerinin daha iyi anlaşılmasını ve yazımını sağlar . Üç boyutlu koordinat sisteminde nokta, matris formunda iki şekilde gösterilebilir.

P=[x y z] veya P = [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image002.gif[/IMG]

Burada gösterilen P matrisleri çoğunlukla vektör olarak isimlendirilirler.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image003.gif[/IMG][IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image004.gif[/IMG][IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image005.gif[/IMG][IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image006.gif[/IMG] Y y

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image007.gif[/IMG] p(x,y,z) p(x,y)

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image008.gif[/IMG] 0 x 0 x

z (a) (b)

Şekil 2.1 Noktanın gösterilmesi (a)üç boyutlu (b) iki boyutlu

2.1.2 Doğru parçası tanımı

Bir doğru tanımlayabilmek için en az iki nokta kullanılmaktadır. Bir doğru parçası tanımlayabilmek için doğru parçasının başlangıç ve bitiş noktalarının belirlenmesi gereklidir. (Şekil 2.2)

Bir doğru parçası bir vektör olarak da gösterilebilir. Koordinat sisteminde , nesneyi oluşturan vektörleri belirleyen noktalar serisi , bir matris olarak bilgisayarda ifade edilebilir. Bu matris bir nesneyi tanımlayan noktaların tümünü içerir. Bir nesneye dönüşüm işlemi uygulanması bu matris değerlerinin her birine ilgili dönüşüm işlemlerinin uygulanması ile sağlanır.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image009.gif[/IMG] y

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image010.gif[/IMG] P2(x2,y2)

P1(x1,y1)

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image011.gif[/IMG] 0 x

Şekil 2.2 Bir doğru parçası

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image012.gif[/IMG]

2.1.3 Yüzey tanımlanması

Bilgisayar ekranında nesnelerin geometrik modelleri oluşturulurken yüzey tanımlamaları yapılır. Bir nesnenin kaç yüzeyden oluştuğu ve bu yüzeylerin biçimi, yüzeyi oluşturan noktalar tarafından belirlenir. Bir küpün alt yüzeyi vardır ve her bir yüzey dört köşe ile tanımlanır. Nesneleri dışardan göründüğü şekliyle her bir yüzeyinin etrafında dizilen noktaları saat ibresinin ters yönünde tanımlamak önemlidir.

2.1.3.1 Üç boyutlu yüzey

Üç boyutlu koordinat sisteminde bir yüzey iki şekilde gösterilebilir. Bunlar:

Z = f ( x, y ) veya g (x, y, z) = 0

Birincisinde x ve y koordinat değerleri kullanılarak z değeri ile yüzey oluştururlar. Diğerinde ise bir değişkenin verilen sabit değerleri için diğer değişken değerlerinin değiştirilmesiyle elde edilen eğri gruplarından yüzeyler oluşturulur.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image013.gif[/IMG] y

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image014.gif[/IMG]

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image015.gif[/IMG]

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image016.gif[/IMG][IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image017.gif[/IMG] x

z

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image018.gif[/IMG]

Şekil 2.3 Üç boyutlu koordinat sisteminde yüzey gösterimi

Bilgisayar grafiklerinde bir düzlem denklemi aşağıdaki gibidir.

ax+by+cz+d=0

Burada , eğer d sıfırdan farklı ise denklemin d ye bölünmesi ile düzlemde bir değişiklik olmaz. Bu nedenle denklemde sadece üç nokta bir düzlemi belirler. d orijinden düzleme olan uzaklık değerini gösterir ve aynı a,b,c katsayılarına sahip denklemlerden elde edilen bütün düzlemler birbirine paraleldir. d=0 ise düzlem orijinden geçer.

aX + bY + cZ = 0

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image019.gif[/IMG] y

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image020.gif[/IMG][IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image021.gif[/IMG]

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image022.gif[/IMG][IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image023.gif[/IMG] P(x,y,z)

d

x

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image024.gif[/IMG][IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image025.gif[/IMG] 0

z

Şekil 2.4 Üç boyutlu koordinat sisteminde düzlem

P(x,y,z) noktası düzlem üzerinde olan keyfi bir noktadır ve P matrisi şeklinde gösterilebilir .Orijinden P(x,y,z) yönünde olan doğru veya vektör düzlem içinden geçer. Aynı zamanda n(a,b,c) üç boyutlu bir nokta olarak ele alınabilir ve aşağıdaki gibi yazılabilir.

n = [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image027.gif[/IMG] , p = [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image029.gif[/IMG]

İki vektörün skaler çarpımını kullanarak orijinden geçen düzlemin denklemi yazılabilir.

p * n = [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image029.gif[/IMG] * [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image027.gif[/IMG]

n,düzlemindeki tüm vektörler diktirler. Bu nedenle üç boyutlu uzayda düzlemin doğrultusunu kontrol eder. Sadece düzlemin orijinden olan uzaklığına etki eder ve n(a,b,c) her zaman

ax + by + cz + d = 0

düzlemine dik bir vektörü belirtir.

BÖLÜM 3

3.GEOMETRİK DÖNÜŞÜM İŞLEMLERİ

3.0 Giriş

Burada temel iki boyutlu dönüşümlerin anlatımından yola çıkarak üç boyutlu dönüşüm ve nesnelerin modellenmesi anlatılacaktır.

3.1Temel Dönüşüm İlkeleri

Bilgisayar grafiklerinde dönüşüm işlemi olarak adlandırılan üç temel işlem vardır. Bunlar:

1-Konum Değiştirme (Translation)

·X ekseninde konum değiştirme

·Y ekseninde konum değiştirme

·Z ekseninde konum değiştirme(X ve Y yönünde konum değiştirme)

2- Ölçeklendirme (Scaling)

·Büyültme

·Küçültme

3-Döndürme (Rotating)

·X ekseninde döndürme

·Y ekseninde döndürme

·Z ekseninde döndürme

Bu üç temel işlem ya ayrı ayrı veya arka arkaya kullanılarak tüm dönüşümler gerçekleştirilir.

Bunun için matematiksel hesaplamalara ihtiyaç duyulur. Bilgisayar grafiklerinde nesne uzayı terimi bizim anladığımız gerçek dünyada nesnelerin gerçek koordinatlarını tanımlamak için kullanılır. Aynı nesnenin bilgisayar ekranında tanımlanması içinde ekran uzayı terimi kullanılır . Nesneler dönüşüm işlemlerinin bir arada kullanılmasıyla nesne uzayından iki boyutlu ekran uzayına tanımlanırlar. Yine geometrik hesaplamalar kullanılarak üç boyutlu resimlerin animasyonu iki boyutlu ekran üzerinde gerçekleştirilir.

Bir çok bilgisayar grafik uygulamalarında dönüşüm işlemleri yaygın olarak kullanılır. Robotların simülasyonu, eklemli figürlerin animasyonu gibi, homojen koordinatlar matrisi olarak isimlendirilen matematiksel gösterim matris çarpımları gibi bütün dönüşüm işlemlerinin yapılmasına olanak tanır. Bu metotla üç boyutlu döndürme işlemini anlatmak için 3*3 matrise 4. Kolon ve satır eklenir. Aynı matrisle konum değiştirme de yapılabilir. Bir noktanın koordinatlarının gösterilmesinde p(x,y,z,w) veya iki boyutluda p(x,y,w) kullanılır. Bazı nedenlerle w “Y” olarak alınır ve matris çarpımının bir sonucu olarak dönüşüm işlemleri üzerinde etkili olmaz.

3.2 İki Boyutlu Dönüşüm İşlemleri

3.2.1 Konum değiştirme

İki boyutlu konum değiştirme P(x,y) noktasının koordinat değerlerine Tx,Ty konum değiştirme değerleri eklenerek gerçekleştirilir. Tx x ekseni yönünde , Ty y ekseni yönünde P noktasının hareketini belirtir. Şekil (3.1)

Bu işlem:

Px’ =Px +Tx

Py’ =Py+Ty

Aynı işlemler homojen koordinatlar matrisi şeklinde aşağıdaki gibi gösterilir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image033.gif[/IMG]

P’(x,y,1 ) =P(x,y,1) *

T konum değiştirme matrisini gösterirse :

P’=P * T

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image034.gif[/IMG][IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image035.gif[/IMG] y y

P’(x,y)

P(x,y) P(x,y)

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image036.gif[/IMG][IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image036.gif[/IMG] 0 x 0 x

Şekil 3.1 İki boyutlu konum değiştirme

3.2.2 İki boyutlu ölçeklendirme

Bir resim x,y koordinat ekseninde boyutlarının ölçeklendirilmesi için resmi oluşturan bütün noktalar aynı ölçeklendirme katsayıları Sx,Sy ile sırasıyla çarpılmalıdır. Şekil 3.2’de görüldüğü gibi bütün noktalar (P1..P4) ölçeklendirme katsayısı 2 ile (Sx,Sy için ) çarpılmıştır. Eğer örnek olarak p1 noktası ele alınırsa ölçeklendirme işlemi aşağıdaki şekilde yapılmış olur.

Pıx’ P1x’=p1x*Sx

Pıy’=P1y*Sy

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image038.gif[/IMG]matris formunda yazarsak:

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image041.gif[/IMG]

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image042.gif[/IMG]

Pı’(x,y,1)=Pı(x,y,1)*

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image042.gif[/IMG]

Kısa formda yazmak istersek:

P’=P*S

S ölçeklendirme matrisini göstermektedir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image043.gif[/IMG]

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image044.gif[/IMG]

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image045.gif[/IMG] P’4 p P’3

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image046.gif[/IMG] P4 P3

P1 P2 P’1 P’2

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image047.gif[/IMG][IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image048.gif[/IMG]

Şekil 3 . 2 . İki boyutlu Ölçeklendirme

3.2.3 İki Boyutlu Döndürme

Orijindeki bir noktanın iki boyutlu döndürme işlemleri, dönme açılarının sinüs ve kosinüs değerlerinin kullanılmasıyla yapılır. Eğer bir P ( x, y ) noktası orijinden saat yönünün tersi yönde 0 açısı ile döndürülürse aşağıdaki eşitlikler yazılabilir. Bu durum şekil 3 . 3 de gösterilmiştir.

PX’ = PX * Cosy – PY * Siny

PY’ = PX * Siny – PY * Cosy

Veya matris şeklinde yazarsak :

P’ ( x, y, 1 ) = P ( x, y, 1 ) * [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image050.gif[/IMG]

R döndürme matrisi ise :

P’ = P * R

Şeklinde bir ifade yazılabilir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image051.gif[/IMG] [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image012.gif[/IMG]y

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image052.gif[/IMG] P’

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image012.gif[/IMG]

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image053.gif[/IMG] 0 x

P

Şekil 3.3 İki boyutlu döndürme

3.2.4 Herhangi bir noktanın iki boyutlu döndürülmesi

Orijinde olmayan bir noktanın döndürülmesi işlemini yapmak robot teknolojisinde ve robot ilişkili bilgisayar grafiklerinin uygulamalarında sıkça kullanılır. Bu döndürme işlemi şekil 3 . 4 de gösterildiği gibi üç adımda yapılabilir.

Şekildeki P ( x, y ) noktasını B ( x, y ) noktası üzerinde a açısı kadar çevirmek istersek ilk iş olarak B noktasını orijine taşırız. Bu nedenle P ( x, y ) noktası – BX ve – BY

değerleri kadar taşınmış olur. Bu durum matris formunda aşağıdaki gibi gösterilebilir.

T1 = [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image055.gif[/IMG]

Daha sonra döndürme işlemi bu taşınmış vektör çevirme matrisi R ile çarpılarak elde edilir.

R = [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image057.gif[/IMG]

Sonuç olarak döndürülmüş nokta eski yerine taşınır. Bu T1-1 ile tersine taşınma işlemi gerçekleştirilir.

T1 = [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image059.gif[/IMG]

Yukarıda verilen üç dönüşüm matrisi şekil 3 . 4 deki dönüşüm işlemlerini yapmak içindir. Burada bu dönüşümlerle ilgili önemli bir faktör, bu dönüşüm işlemlerinin yukarıda anlatıldığı şekliyle ve sırasıyla olması gerekliliğidir. Aksi halde dönüşüm işlemi gerçekleşmeyecektir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image061.jpg[/IMG] [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image063.jpg[/IMG] [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image065.jpg[/IMG]

Şekil 3.4 İki boyutlu herhangi bir noktanın döndürülmesi

3.3 Üç Boyutlu Geometri

Geçerli iki boyutlu tanıma bir üçüncü boyutun eklenmesiyle üç boyutlu koordinat sistemi elde edilir. Bu yeni boyut, derinliği verir veya Z ekseni olarak isimlendirilir. Üç boyutlu grafikler de birçok yönden iki boyutlu grafiklerin uzantısıdır. Üç boyutlu grafiklerin bilgisayar ekranında görüntülenmesi iki boyutlu hale dönüştürülerek yapılır. Bu da üç boyutlu nesne görüntüsünün projeksiyon yöntemi ile bilgisayar ekranına iz düşürülmesi ile olur. Üç boyutlu bilgisayar grafiklerinde sol-el ve sağ-el koordinat sistemi olmak üzere iki çeşit koordinat sistemi kullanılır. Genellikle, nesnenin tanımlanmasında sağ-el, görüntülenmesinde ise pozitif z nokta değerlerinin içerde kaldığı sol-el koordinat sistemi tercih edilir. ( şekil 3 . 5 )

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image066.gif[/IMG][IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image067.gif[/IMG] y y

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image068.gif[/IMG] z

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image069.gif[/IMG]

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image070.gif[/IMG][IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image005.gif[/IMG]o x o x

(a)Sol el

z (b) Sağ el

Şekil 3 . 5 Koordinat sistemleri

Üçboyutlu homojen koordinat sisteminde bir noktanın gösterimi için kullanılan P vektörü :

P = [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image072.gif[/IMG]

şeklindedir. İkinci boyutta bir nokta, üç boyutlu homojen koordinatlarda kullanılacağı zaman w daima 1 olarak alınır. Üç boyutlu nesnelerin ekranda görüntülenmesi durumunda w için farklı değerler kullanılabilir. Üç boyutlu homojen dönüşüm matrisinin iki boyutlu homojen dönüşüm matrisinden tek farkı sadece üçüncü boyut hesaplamalar için bir satır ve sütun eklenmiş olmasıdır.

3.3.1 Üç Boyutlu Konum Değiştirme İşlemi

Bir nesnenin konum değiştirmesi için nesneyi oluşturan bütün noktaların x, y, z koordinat değerlerine sırayla TX, TY, TZ öteleme miktarlarının eklenmesiyle yapılır. Üç boyutlu konum değiştirme denklemleri :

PX’ = PX + TX

PY’ = PY +TY

PZ’ = PZ+ TZ

şeklindedir.

Konum değiştirme işleminin homojen koordinat matrisi şeklinde gösterimi aşağıdaki gibidir.

T = [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image074.gif[/IMG]

Bir P ( x, y, z ) noktası için konum değiştirme işleminin gösterimi ise :

P’ ( x, y, z, 1 ) = P ( x, y, z, 1 ) * [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image074.gif[/IMG]

Şeklindedir. TZ ‘nin önceki değerine göre konum değiştirme işlemi z ekseni üzerindedir.

3.3.2 Üç Boyutlu Ölçeklendirme İşlemi

Diğer işlemlerde olduğu gibi ölçeklendirme işlemi iki boyutludaki gibidir. Tek fark yeni ölçeklendirme katsayısı SZ dir. Bu durum matris formunda aşağıdaki gibi gösterilir.

S = [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image076.gif[/IMG]

Bir P ( x, y, z ) noktası için ölçeklendirme işleminin gösterimi ise,

P’ ( x, y, z, 1 ) = P ( x, y, z, 1 ) * [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image076.gif[/IMG]

Şeklindedir. Ölçeklendirme işleminde katsayılardan birinin 1 den küçük olması durumunda nesnenin boyu ilgili yönde küçülür. 1 den büyük olması durumunda nesnenin boyu ilgili yönde büyür. Nesnenin boyutunun her yönde eşit oranlarda büyütülmesi veya küçültülmesi, her üç ölçeklendirme katsayısının birbirine eşit olarak alınmasıyla sağlanır.

3.3.3 Üç Boyutlu Döndürme İşlemi

Üç boyutluda da iki boyutlu döndürme işlemi geçerli olur. Bu nedenle eğer bir nesne üç boyutlu sistemde döndürülmek istenirse dönüş ekseni mutlaka belirtilmelidir. Ayrıca pozitif dönüş yönünün ne olacağı önemlidir. Bir eksen etrafında pozitif dönüş,döndürme ekseninin pozitif tarafından orijine doğru bakıldığında saat ibresinin dönüş yönünün tersi olarak belirlenir.

Üç eksen etrafında birbirinden bağımsız dönüşler yapılabilir. Bir eksen etrafında döndürme işlemi yapılırken nesnenin koordinatlarından, döndürmenin yapıldığı eksene ait koordinat değeri sabit tutularak diğer koordinat değerleri dönüşüm işlemine tabi tutulur. Bu nedenle bir z düzleminde döndürme işlemi iki boyutludur. Saat tersi yönündeki x, y, z eksenleri üzerindeki dönüşler aşağıda gösterilmiştir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image077.gif[/IMG][IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image078.gif[/IMG][IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image079.gif[/IMG][IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image012.gif[/IMG] y z

o x

Şekil 3 . 6 Saat yönünün tersi yönde üç boyutlu döndürme

X ekseni etrafındaki dönüşte nesne noktalarının x değerleri sabit tutulur.

RX = [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image081.gif[/IMG]

Y ekseni etrafındaki dönüşte nesne noktalarının y değerleri sabit tutulur.

RY = [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image083.gif[/IMG]

Z ekseni etrafındaki dönüşte nesne noktalarının z değerleri sabit tutulur

.

RZ = [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image085.gif[/IMG]

bX, bY, bZ açılarına bağlı olarak bir nesnenin her üç eksene göre döndürülmesini sağlayan dönüşüm matrisi, her eksen için ayrı olarak yazılan döndürme matrislerinin çarpımı ile elde edilir.

R = [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image087.gif[/IMG]

BÖLÜM 4

4. ÜÇ BOYUTLU GÖRÜNTÜ OLUŞTURMA

4.0 Giriş

Üç boyutlu nesne bilgisayar ekranında görüntülenene kadar birçok değişik aşamalardan geçmek zorundadır. Burada bu aşamaları kısaca gözden geçireceğiz.

3B Görüntü İçin Dönüşümler ( 3D Viewing Transformations ) : 3B’lu bilgisayar terimlerinden “ dünya koordinatları uzayı “ içinde yaşadığımız dünyayı tanımlar. Eğer biz bu uzayda bulunan bir nesneyi bilgisayar ekranında görüntülemek istersek aşağıdakileri tanımlamamız gerekir.

·Nesneye bakarken bulunduğumuz noktayı

·Bakış eğimi açısını

·Nesnede kesin olarak baktığımız noktayı ( interest point )

Bir de özel bir bakış noktasından görüntülenebilir kısmın belirlenmesi gerekir. Bütün tanımlamalar yapıldıktan sonra görüntülenecek resmin bilgileri doğrultusunda nesnenin bilgisayar ekranına aktarılma işlemine geçilir. Bu bilgiler ışığında 3B’lu dönüşümün ilk adımı tam bir dönüşüm için nesneler, nesne uzayından ekran uzayına aktarılırlar.

Kesit Alma İşlemi ( Clipping ) : Gözün doğal özelliklerinden dolayı bakış alanının boyutları sınırlıdır. Çünkü arkamızda ne var göremeyiz. Bu sınırlama bilgisayar ekranında kesme işlemiyle gerçekleştirilir. Nesnelerin üzerinde bakış alanı sınırları dışında kalan hatlara kesme işlemi uygulanır.

Görünüşün Ölçeklendirilmesi ( Perspektive Scatting ) : Nesnelerin doğal görünüşünü elde etmek, başka bir deyişle cismin ekrana uzaktaki görüntüsü küçük, yakındaki görüntüsü geniş görünüşlü olması için görünüşün ölçeklendirilmesi gerekir. Aksi halde nesnenin görüntüsü aslından farklı olur.

Görünmeyen Yüzeyin Kaldırılması ( Hidden Surface Removal ) : Nesnenin görünmeyen parçalarının işlemlerinin tamamlanması sırasında bunların görüntülenmesine gerek yoktur. Bu işleme “ görünmeyen yüzeyin kaldırılması işlemi “ denilir.

Resim İşleme ( Rendering ) : Bir diğer işlem de benzer işleyişleri gerektiren “ resim işleme “ dir. Görüntülenemez hatlar veya yüzey kaldırılması yerine görüntüyü oluşturan her bir piksel görüntülenebilir yüzey üzerinde olup olmadığı ayrı ayrı test edilir. bir de daha kaliteli resim için gölgeler ve diğer ışık ilişkili özellikler aynı tip işlemle sağlanır.

Görüntü Sistemi ( Display System ) : Sonuçta grafiklerin bilgileri bu değişik aşamalarda işlenip, çizim, ekranda tutan display kontrolörü ve frame buffer içeren display sistemine gönderilebilir olmalıdır.

4.1 Sanal Kamera ( Virtual Camera )

Burada kullanılan kavramlar ( Öğütmen,1998) dan özetlenerek aktarılmıştır. Animasyon programcılarının başlıca problemlerinden birisi bilgisayar ekranında, üzerinde güzel görüntü efektlerinin yapılabildiği bir görüntü penceresi yapacak piksel dizinin nasıl tanımlanması gerektiğine karar vermektir. Kaliteli resimlerin hazırlanması problemini, kullanıcı, gerçek kameranın simülasyonu ve özel efektlerin yardımıyla çözebilmektedir. Dijital kamera, sanal kamera, sentetik kamera terimleri aynı şeyi ifade ederler ve gerçek hayatta film çekimleri için kullanılan kameranın simülasyonunu veren, aynı düşüncenin sonuçlarıdır. Sanal kamera terimi üç boyutlu bilgisayar grafiklerinde sıkça kullanılır ve üç boyutlu dünya koordinat sistemi içindeki bir nesnenin bilgisayar ekranı üzerindeki iki boyutlu izdüşümünü alan dönüşüm işlemlerinin tümünü içeren bir program parçasının sonucudur. (Levy,1995)

Bir sanal kamera üç boyutlu dünya koordinatlarında tanımlanmış göz noktası ve bakılan nokta olarak isimlendirilmiş iki nokta ile tanımlanabilir. Sanal kameranın tanımı için kullanılan bazı yaygın bilgisayar terimleri aşağıda açıklanmıştır.

·Dünya Koordinat Sistemi (World Coodinate System , WCS ) :Bazen nesne uzayı olarak kullanılsa da nesnelerin temel koordinat sistemidir.

·Bakış Düzlemi ( View Plane , VP ) : Üç boyutlu resmin izdüşümünün yapıldığı düzlem. Genellikle bilgisayar ekranı olarak alınır.

·Bakış Düzlemi Koordinatları (View Plane Coordinates , VPC ) :Bilgisayar ekranı koordinat sistemidir. VP ile ilgilidir.

·İlgilenilen Nokta ( Point of Interest , POI ) : Bakılan görüntü üzerindeki ilgilenilen merkez nokta. Bazen bakış pozisyonu olarak da tanımlanabilir. Eğer bu nokta değişirse ekrandaki görüntü direk olarak etkilenir.

·Bakış Düzleminin Normali (View Plane Distance , VPN ) : Bakış düzleminden ilgilenilen noktaya yönlendirilmiş bir vektördür ve bakış düzlemine diktir.

·Bakış Düzleminin Mesafesi (View Plane Distance , VPD ) :Bakış VPN boyunca POI ve VP arasındaki uzaklığa, bakış düzleminin mesafesi denir.

·Bakış Noktası ( View Point , VPT ) : Göz noktası olarak da bilinir. WCS ile ilişkili olarak kamera pozisyonu veya bakış pozisyonunun üç boyutlu koordinat değerleri ile tanımlandığı noktadır.

Şekil 4.1 de üç boyutlu kamera dünya koordinatlarında ( WCS ) yerleştirilmiştir. Bulunulan noktadan xy, yz, xz yüzeylerine dik olan mesafeler kamera pozisyonunu verir. Z ekseni yukarı bakış yönünü ve POIx, POIy, POIz değerleri dünya koordinat sistemi ( WCS ) ile ilişkili verilmiştir. Bakış noktası normali ( VPN ) kamera objektifi ile ilgilenilen noktayı ( POI ) i birbirine bağlar ve bilgisayar ekranına diktir. Kamera yönü POI ya doğrudur. Bilgisayar ekranı üzerinde sol alt köşe orijin olarak ve XS noktaları sağa doğru, YS noktaları yukarı doğru alınmıştır. Bu dönüşümler kullanıldığında görüntü koordinatları, bilgisayar ekranı koordinat sistemine ( VPC ) dönüştürülmüş olur. Bu işlemler birkaç adımda gerçekleştirilir. İlk olarak orijin ilgi noktasına kaydırılır. Daha sonra P (XC, YC, ZC ) değerleri alınarak bakış noktasına çevrilir. XC ekseni üzerinde YC ekseni ZWCS yi kesene kadar koordinat sistemi çevrilir ve eksen sistemi de XC ekseni etrafında ZC ekseni ilgilenilen noktayı gösterene kadar döndürülür. Sonuçta koordinat sistemini sol-el koordinat sistemine dönüştürmek için XC ekseninin yönü ters çevrilir. Bu beş dönüşüm işlemi aşağıda görüldüğü gibi dört matris işlemi olarak ifade edilmiştir. Bunlar :

T1 = [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image089.gif[/IMG]

T2=[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image091.gif[/IMG]

T3=[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image093.gif[/IMG]

T4=[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image095.gif[/IMG]

Dönüşüm matrisleri içinde P ( XC, YC, ZC ) dünya koordinat sistemiyle ilişkilendirilmiş üç boyutlu kamera koordinatları tanımına uygun gelir. POI ile kamera koordinatlarını birleştiren D doğrusu aşağıdaki gibi ifade edilebilir :

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image097.gif[/IMG] D=

D’nin x-y düzlemindeki yansıması olan L değeri ise :

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image099.gif[/IMG]

L =

Şeklinde yazılır ve P ( X’, Y’, Z’ ) nün değerleri de aşağıdaki gibi hesaplanır.

X’ = ( XC - XPOI )

Y’ = ( YC - YPOI )

Z’ = ( ZC – ZPOI )

Böylece dünya koordinatlarında verilen bir P ( XW, YW, ZW ) noktası aşağıdaki formül ile kamera koordinatlarına dönüştürülebilir.

P ( XC, YC, ZC ) = P ( XC, YC, ZC ) * T

Yukarıda verilen dönüşüm işlemlerinin tümünü bir seri şeklinde gösteren dönüşüm matrisleridir.

P ( XC, YC, ZC ) = P ( XW, YW, ZW ) * ( T1 ,T2, T3, T4 )

Verilmiş bir noktanın yukarıdaki gibi kamera koordinatlarının bulunmasından sonra ekran koordinat değerleri de hesaplanabilir. Bizim görüntümüzü oluşturan noktaların bütün koordinat değerleri yukarıda tanımlandığı şekliyle hesaplanır. Kullanıcı, kamera hareketlerini tanımladığı gibi bakış noktasını ve ilgilenilen noktayı da değiştirmekte serbesttir. Bu durum değişken bakış şartlarının ortaya çıkmasını sağlar. Her bir çerçevenin hesaplanması sırasında program gerekli dönüşüm parametrelerini kontrol eder ve eğer onlar değişirse bir sonraki çerçeve yeni tanımlanan parametrelere göre hesaplanır.

4.2 Boyutlu Kesit Alma İşlemi ( Clipping )

Bir animasyon sistemi içerisinde üç boyutlu kesit alma işlemi görüntüleme, işlemlerinin temel parçasıdır. Kesit alma işlemleri ile görüntü oluşturmanın genliğini sınırlarken bazı istenmeyen etkiler olabilir. Örneğin negatif noktaların yansıması gibi veya kesit alma sınırları dışında kalan noktaların neden olduğu grafik ekran sınır değerleri ihlalleri, resimleri bozabilir.

Şekil 4.2 de görüldüğü gibi görüntü oluşturma genliği sağ, sol, üst ve alt kesme yüzeylerinden oluşur. Görüntü oluşturma algoritması, görüntünün görüntülenebilir bölgelerini sınırlayan bu yüzeylerle nesnelerin mevcut hatlarını keser. Uzak noktalar için böyle bir sınırlama olmamasından dolayı bu görüntü oluşturma genliğiyle, sonsuz bir görüş elde edilebilir. Görüntüyü daha gerçekçi yapmak için ön ve araka kesme yüzeyleri adı ile iki yeni kesme yüzeyi daha mevcut dört yüzeye eklenmiştir. Ön kesme yüzeyinin amacı, görüntü yüzeyinin veya göz noktasının arkasında bulunan noktaların görüntülenmesini sağlamaktır. Arka kesme yüzeyi ise uzak görüntü genliğinde gerçeğe aykırı olarak görüntülenmiş olan noktaları kesmek için kullanılmıştır. Bu iki yüzey ile kesilmiş görüntü genliğine “ sınırlı görüntü genliği “ adı verilir.

3B’lu grafikte kesme işlemi genellikle 3B’lu göz koordinat sistemi içinde yapılır. Göz koordinatları içindeki kesme, kesme işleminden sonra görünür olmayan noktaların dönüşüm işlemlerini gerektirebilir. Fakat 3B’lu nesne uzayındaki kesme işlemlerinin zorlukları yanında bu durum önemsenmeyebilir. (Levy ,1995 )

4.3 Ekran Üzerinde Görüntü Oluşturma

Değişik görsel efektler elde etmek için değişik projeksiyon teknikleri kullanılabilir. Üç boyutlu bilgisayar grafiklerinde 3B’lu bir nesnenin projeksiyonu “ planar geometric projections “ olarak isimlendirilen bir dizi dönüşümle 2B’lu bilgisayar ekranı üzerindeki noktaların izdüşümleri alınarak yapılır. Yani nesnenin z koordinatı atılır.

Projeksiyon teknikleri kullanım açısından paralel ve perspektif projeksiyon olarak iki gruba ayrılabilir. Projeksiyonda önemli olan, projeksiyon çizgilerinin projeksiyon düzlemi ile yaptığı açı, projeksiyon yönü (nesneye hangi yönden bakıldığı) ve projeksiyon merkezinin nesneye olan uzaklığıdır. Paralel projeksiyonda, projeksiyon merkezinin uzaklığı sonsuz olarak kabul edilir. Bu yüzden projeksiyon çizgileri birbirine paraleldir. Perspektif projeksiyonda ise projeksiyon çizgileri paralel değildir. Paralel projeksiyon da kendi aralarında gruplara ayrılmaktadır. Paralel projeksiyon mimarlar, desinatörler, mühendisler ve diğer çizim işiyle uğraşanlar tarafından tercih edilir. ( Leung,1989 )

4.3.1 Perspektif Projeksiyon

Gerçek dünyada nesneler üç boyut içinde algılanır fakat bilgisayar ekranında sadece iki boyut vardır ( x, y ) . Bu nedenle üç boyutlu dünya koordinatlarındaki bir nesnenin iki boyutlu ekran veya görüntü koordinatlarına dönüştürmenin bir yolunu bulmaya gerek vardır. Nesnelerin uzaktaki görünüşlerinin gerçekçi olarak görüntülenmesi için küçük ve dar, ekrana yakın olan görünüşleri büyük ve geniş olmalıdır. Bu perspektif projeksiyonla yapılır. Perspektif projeksiyon bize daha gerçekçi bir görünüş sunmakla birlikte bu işlem uygulandığı zaman nesnelerin tam boyutları kaybolmaktadır. Bu nedenle yaygın olarak tanıtım, reklam, animasyon veya diğer benzer grafik uygulamalarında kullanılır.

Perspektif projeksiyonlarda, projeksiyon doğruları birbirine paralel değildir. Bunlar projeksiyon merkezi olarak adlandırılan bir noktadan çıkarılır. Projeksiyon merkezi tek ise bu projeksiyona tek noktalı, iki tane ise iki noktalı, üç tane ise üç noktalı perspektif projeksiyon denir. Burada sadece tek noktalı projeksiyon tipi ele alınacaktır.

Eğer dünya koordinatlarında tanımlanmış bir P (XW, YW,,ZW ) noktasının perspektif projeksiyonunu bulmak istersek, bir D mesafesinden noktanın bulunduğu yere bakılmış olsun. Bu projeksiyonun ekran üzerindeki oluşumu aşağıdaki şekilde gösterilmiştir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image044.gif[/IMG] Yekran

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image100.gif[/IMG]

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image101.gif[/IMG]

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image102.gif[/IMG]

Şekil 4.3 Noktanın perspektif projeksiyonu

Daha önce gösterildiği gibi bir üç boyutlu noktanın kamera koordinatları önceki bölümde tanımlanan matrisler kullanılarak bulunabilir. Noktanın kamera koordinat değerleri hesaplandıktan sonra noktanın PXZ, PYZ iki boyutlu ekran koordinatları bulunabilir. Uzaktaki nesneleri küçük görünüşlü yakın nesneleri geniş görünüşlü yapmak ve istenen görüntüyü elde etmek için XEYE ve YEYE değerleri ZEYE ile bölünür.

Böylece :

XSCN = [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image104.gif[/IMG]

YSCN = [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image106.gif[/IMG]

XSCN ve YSCN noktanın iki boyutlu ekran değerlerini gösterir. D perspektif mesafesi, S yarım ekran ölçüsüdür. Bu iki değerin birbirine oranı ölçeklendirme faktörü olarak yukarıdaki eşitliklerde kullanılmıştır. Bu oran perspektif ölçülerini değiştirmeden resmin ölçülerini değiştirir. (Leung,1989)

4.4 Görünmeyen Yüzeyin Kaldırılması

Poligon yüzeylerle ifade edilen katı modellerin görüntülenmesindeki problemlerden biri belirlenmiş kamera pozisyonundan görüntülenmeyecek gizli yüzeylerin kaldırılma gerekliliğidir. Görünmeyen yüzeylerin kaldırılması ile katı cisimlerin görüntülenmesi için birçok algoritma geliştirilmiştir.

İki farklı yaklaşım nesnelerin görünmeyen parçaları kaldırılabilir. Birinci grup algoritmalar “ görüntü uzayı “ algoritmalarıdır ve ekran uzayında çalışırlar. Kısaca görüntüyü oluşturan çerçevenin her pikseline onun yoğunluğu göz önünde bulundurularak karar verilir. Diğer bir deyişle bu pikselde birden fazla yüzey çalışması varsa hangi yüzeyin görüntüleneceğini bulmak için kullanılır. Z buffer algoritması bu yaklaşıma örnek olarak verilebilir. “ Nesne uzayı “ algoritmaları nesne uzayında bulunan nesnelerin görüntülenebilirliğine karar verir. Bu algoritmalar başlangıçta nesne uzayında kullanılır fakat son görüntü, görüntü uzayında yer alır. Katı cisimlerin görünmeyen yüzeylerini kaldırarak görüntülenmesini sağlayan birçok algoritma kullanılmaktadır. Animasyonda bir görüntü üç değişik formda görüntülenebilir.

·Kafes-görüntü formu ( Wire-frame form ) : Arka yüzeyler haricinde kalan bütün yüzeyler görüntülenebilir.

·Görünmeyen yüzeylerin kaldırıldığı form ( Hidden surfaces removed form ) : Görünmeyen çizgiler kaldırılır.

·Pürüzsüz şekillendirme formu ( Smoothly rendered form ) : Gölgelendirme ve diğer yüzey bilgilerinin bulunabildiği formdur.

Wire-frame resimleri seri hareketlerin hızlı incelenmesi için kullanışlıdır. Nesnenin görünmeyen parçalarını bulmayı içeren fazladan hesaplama olmadığı için görüntüleme çok hızlı olabilir. Görüntüleme süresi özel grafik yetenekleri bulunmayan sıradan çalışma merkezlerinin hızına yakındır.

Görünmeyen yüzeylerin kaldırıldığı görünüşler, görüntüye daha güzel bir bakış sağlayabilir. Animatör, animasyonu yapılmış nesnenin durumunu ekran dışına taşıp taşmadığını test edebilir.

En son görüntülenen form rendered-formdur. Animatörün yansımalar, gölgeler ve yazılarıyla nesnelerin görüntülenebildiği son formdur. Sonuç görüntüleri bu formda üretilir. Animatörün net bir görüntü için en azından nesnenin görünmeyen yüzeylerinin kaldırılmasına ihtiyaç vardır.

4.5 Sıralı Dizilerle Görünmeyen Yüzeylerin Kaldırılması

Dizilerin kullanılmasında dizilerle görüntü uzayının bir şekli çizilir. Bu şeklin çizilmesinde diziler x,y,z koordinatlarına göre sıralanır. Daha sonra bu sıralan dizi, görünen yüzeylerin hesaplanması zaten rotate işlemlerinde bulunmuştu, bulunan görünen yüzeylere göre ekrana çizilir. Belirtilen noktalara göre çizilen yüzeyin içi boyanır ve render işlemi tamamlanmış olur. Kısaca açıklanan bu render işlemi bir animasyonun en zor kısmını oluşturmaktadır. Animasyon daha sonra aynı işlemleri sayfa yapılarının tamamına uygular ve böylece art arda ekrana yansıyan bu modeller nesnenin ekranda hareket etmekte olduğunu hissini verir. Saniyede 14 ile 17 frame arasında görülen görüntü gerçek zamanlı hareket sağlar.

BÖLÜM 5 5. PROGRAM HAZIRLAMA 5.1 Giriş

Basit anlamda program yapılırken şu bölümlerden oluşur;

·Değişkenlerin tanımlanması

·Üç boyutlu dönüşümlerin procedür ve function’ları

·Renderle ilgili soring procedür’leri ve fonksiyonları

·Grafik procedür’leri

·Animasyon procedür veya fonksiyonları

·Ana program bloğu

5.2 Program ve Fonksiyon Guruplarının Açıklamaları

5.2.1 Değişkenlerim tanımlanması

Değişkenlerde sırası ile minimum bulunması gerekenler şunlardır

·Nesne sayısına göre node tanımlaması yapılmalıdır. Bu tanımlamalar yapılırken exe program yapısı nedeni ile mümkün olduğunca sabit değişken tanımlanmayıp programı şişirmemek için pointer kullanılmalıdır. Pointer kullanırken pointer en az bir bağ ve x, y, z değişkenleri içeren nokta tanımlamaları kullanılmalıdır.

·Her nesne için bir başlangıç içeren pointer kullanılmalıdır ki bu pointer sayesinde nesneye ait başlangıcın neresi olduğunu kolaylıkla bulabiliriz diğer türlü başlangıç pointer’i kullanılmak istenmezse her pointer’e başlangıcı gösteren ek bir bağ kullanılır. Fakat bu sıralı bağlı dizilere uymadığı için tercih edilmez.

·World koordinat sistemi tanımlanır. Bu tanımlanan koordinat sistemi x, y, z tanımlamalarını içermelidir.

·Kamera ve ışık noktalarını gösteren pointer veya sabit değişkenler tanımlanır. Bu tanımlarda kamera için yapılan tanımda x,y,z ve world koordinat sistemine göre yapılan açılar tanımlanır.

·Dönüşümler için gerekli olan temporary nesne pointer’leri tanımlanır. Bu pointer’ler yine nesne tipinde olmalıdır.

Bu tanımlar yapıldıktan sonra yine bu tanımlara bağlı olarak nesne uzayı oluşturur.

5.2.2 Dönüşüm Procedürleri

Minimum kullanılan dönüşüm procedürleri ise şunlardır;

·X ekseni hareket procedürü : Bu procedürde belirtilen nesne x ekseninde hareket ettirilir. Bu ise şu sadeleşmiş ve bilgisayara uygunlaştırılmış formülle uygulanır.

x = x+(hareket miktarı)

Burada hareket miktarı piksel cinsinden yada gerekli dönüşüm formülleri uygulanacaksa herhangi bir birimle olmadır.

·Y ekseni hareket procedürü: Bu procedürde belirtilen y ekseninde hareket ettirilir. Bu ise şu sadeleşmiş ve bilgisayara uygunlaştırılmış formülle uygulanır.

y = y+ (hareket miktarı)

Burada hareket miktarı piksel cinsinden yada gerekli dönüşüm formülleri uygulanacaksa herhangi bir birimle olmadır.

·Z ekseni hareket procedürü: Bu procedürde belirtilen nesne x ve y eksenlerinde hareket ettirilir. Bu ise şu sadeleşmiş ve bilgisayara uygunlaştırılmış formüllerle uygulanır.

x = x+(hareket miktarı) y = y+ (hareket miktarı)

Burada hareket miktarı piksel cinsinden yada gerekli dönüşüm formülleri uygulanacaksa herhangi bir birimle olmadır.

·X ekseni döndürme procedür veya fonksiyonu: Bu procedür ve ya fonksiyonda nesne x ekseninde döndürülür. Bunu sağlayan formül şu şekilde bilgisayara adapte edilebilir

y= y.cos(a)-z.sın(a) z=y.sın(a)+z.cos(a)

·Y ekseni döndürme procedür veya fonksiyonu: Bu procedür ve ya fonksiyonda nesne y ekseninde döndürülür. Bunu sağlayan formül şu şekilde bilgisayara adapte edilebilir.

x=x.cos(a)-z.cos(a) z=x.sın(a)+z.cos(a)

·Z ekseni döndürme procedür veya fonksiyonu: Bu procedür ve ya fonksiyonda nesne z ekseninde döndürülür. Bunu sağlayan formül şu şekilde bilgisayara adapte edilebilir.

x=x.cos(a)+y.sın(a) y=x.sın(a)+y.cos(a)

Bu fonksiyon veya procedürlerin ardından istenirse tel kafes halinde bir nesne döndürülüp hareket ettirilebilir.

·Küçültme ve Büyültme Procedürü: Bu procedürde nesne büyültülür veya küçültülür.

x=x/zk y=y/zk Bu formüllerde zk zoom oranıdır.Büyütme işleminde gerçek zoom formülü alınır. Büyütme formülünde ise tersi alınır. Örneğin büyütme oranı 0.9 olsun bu durumda küçültme oranı 1.1 olur.

SONUÇ

Ekte program kodları verilen program, tel kafes şeklinde ekrana çizdirilen mekik modelini, üçboyutlu olarak hareket ettirmektedir. Program çalışırken, mekik.3d adlı text dosyadan mekiğe ait nokta tanımlarını alıp, ilgili procedürde işleyerek ekrana yansıtmakta ve böylece ekran üzerinde sanal bir gerçeklik(Virtual Realty) oluşturulmaktadır.

Ekran üzerinde sürekli bir görüntü sağlayabilmek için X,Y ve Z eksenlerinde döndürme ve hareket ettirme procedürleri ardışık olarak kullanılmıştır. Mekiğin boşlukta(Ekran Uzayında) dolaşıyormuş sanılması için küçültme ve büyültme procedürleri kullanılmıştır. Programın baş kısmında bulunan asembly dili ile yazılmış olan fonksiyonlar ekran modu, grafik sürücüsü ve grafik modlarını ayarlama işlemlerini yapmaktadır.

Programın son kısmında slide show olarak ekrana isim, soyad ve numara yazdıran bir procedür bulunmaktadır. İstenildiği takdirde bu programla başka cisimleri ekrana üç boyutlu olarak çizip olası hareketlerini simüle etmemiz mümkündür. Ekrana yansıtılan cismin hareket yönü ve şekli ana program bloğunda belirlenmiştir.

KAYNAKLAR 1)ÖĞÜTMEN, Nizar,Grafik Formatları ve 3. Boyut,Beta, İstanbul,1997

2)Celos: 3D Transformations/1998

http://www.dfc.psu.edu/Kinematics/Kin_tutor06.html

3)3D Transformations/1998

http://Pages.infinit.net/jstlouis/3d…ormations.html

4)NEWMAN William M.,SPROUL Robert F.,Principles of Interactive Computer Graphics,Second Edition,New York,1979

5)3D Geometric Transformations/1998

http://acc6.its.brooklyn.cuny.edu/~l…s741/3Dtx.html

6)LEUNG,K.W.,The Generation Of Light Points On Raster Scan Displays,Universty of SUSSEX,1989

7)ÖZEL Galip,Turbo Pascal 6.0(Bios,Dos.Grafik,Object),Beta,1.Basım,İstanbul,1993

EK-1

Hazırlamış olduğum program, kafes görünümünde olan bir uzay mekiğini üç boyutlu olarak, döndürme(üç eksende), ölçeklendirme ve konum değiştirme procedurelerini kullanarak ekranda üç boyutlu bir mekik simülasyonu görüntüsü oluşturmaktadır.

1.1 Program Kodu

{$E+,N+}

uses

{$IFDEF DPMI}

Crt, Dos, Graph, WinAPI;

{$ELSE}

Crt, Dos, Graph;

{$ENDIF}

type

VgaInfoBlock = record

VESASignature: array[0..3] of Byte;

VESAVersion: Word;

OEMStringPtr: Pointer;

Capabilities: array[0..3] of Byte;

VideoModePtr: Pointer;

end;

coordinate =array[1..7]of real;

point=record

x,y,z:real;

end;

linerec=^linetype;

linetype=record

fpoint,tpointoint;

color:byte;

next:linerec;

end;

var

i,VESA16,ErrorCode, GraphDriver ,GraphMode : integer;

MaxColor : word;

OldExitProc : Pointer;

last,firstline:linerec;

xx,yy:real;

x,y:string;

dosya:text;

const

VESA16Modes: array[0..2] of Word =($0102, $0104, $0106);

Function GetHighestCap(Table: Pointer; Modes: Word; Size: Integer): Integer;

near; assembler;

asm

XOR AX,AX

LES DI, Table

@@1:

MOV SI, Modes

ADD SI, Size

ADD SI, Size

MOV BX, ES:[DI]

CMP BX, 0FFFFH

JE @@4

INC DI

INC DI

MOV CX,Size

@@2:

CMP BX,[SI]

JZ @@3

DEC SI

DEC SI

LOOP @@2

@@3:

CMP AX,CX

JA @@1

MOV AX,CX

JMP @@1

@@4:

end;

{$IFDEF DPMI}

type

TRealRegs = record

RealEDI: Longint;

RealESI: Longint;

RealEBP: Longint;

Reserved: Longint;

RealEBX: Longint;

RealEDX: Longint;

RealECX: Longint;

RealEAX: Longint;

RealFlags: Word;

RealES: Word;

RealDS: Word;

RealFS: Word;

RealGS: Word;

RealIP: Word;

RealCS: Word;

RealSP: Word;

RealSS: Word;

end;

function DetectVesa16: Integer; far; assembler;

var

Segment, Selector, VesaCap: Word;

asm

{$IFOPT G+}

PUSH 0000H

PUSH 0100H

{$ELSE}

XOR AX,AX

PUSH AX

INC AH

PUSH AX

{$ENDIF}

CALL GlobalDosAlloc

MOV Segment,DX

MOV Selector,AX

MOV DI,OFFSET RealModeRegs

MOV WORD PTR [DI].TRealRegs.RealSP, 0

MOV WORD PTR [DI].TRealRegs.RealSS, 0

MOV WORD PTR [DI].TRealRegs.RealEAX, 4F00H

MOV WORD PTR [DI].TRealRegs.RealES, DX

MOV WORD PTR [DI].TRealRegs.RealEDI, 0

MOV AX,DS

MOV ES,AX

MOV AX,0300H

MOV BX,0010H

XOR CX,CX

INT 31H

MOV DI,OFFSET RealModeRegs

MOV AX,grError

PUSH AX

CMP WORD PTR [DI].TRealRegs.RealEAX,004FH

JNZ @@Exit

POP AX

MOV ES,Selector

XOR DI,DI

CMP ES:[DI].VgaInfoBlock.VESASignature.Word[0], ‘EV’

JNZ @@Exit

CMP ES:[DI].VgaInfoBlock.VESASignature.Word[2], ‘AS’

JNZ @@Exit

MOV AX,0000

MOV CX,1

INT 31H

MOV VesaCap,AX

MOV DX,ES:[DI].VgaInfoBlock.VideoModePtr.Word[2]

MOV CX,4

XOR AX,AX

@@Convert:

SHL DX,1

RCL AX,1

LOOP @@Convert

ADD DX,ES:[DI].VgaInfoBlock.VideoModePtr.Word[0]

ADC AX,0

MOV CX,AX

MOV BX,VesaCap

MOV AX,0007H

INT 31H

INC AX

XOR CX,CX

MOV DX,0FFFFH

INT 31H

MOV ES,BX

PUSH ES

PUSH DI

{$IFOPT G+}

PUSH OFFSET Vesa16Modes

PUSH 0003H

{$ELSE}

MOV SI, OFFSET Vesa16Modes

PUSH SI

MOV AX, 5

PUSH AX

{$ENDIF}

CALL GetHighestCap

PUSH AX

MOV BX,VesaCap

MOV AX,0001H

INT 31H

@@Exit:

PUSH Selector

CALL GlobalDosFree

POP AX

end;

{$ELSE}

function DetectVesa16: Integer; far; assembler;

var

VesaInfo: array[0..255] of Byte;

asm

MOV AX,SS

MOV ES,AX

LEA DI,VesaInfo

MOV AX,4F00H

INT 10H

CMP AX,004FH

MOV AX,grError

JNZ @@Exit

CMP ES:[DI].VgaInfoBlock.VESASignature.Word[0], ‘EV’

JNZ @@Exit

CMP ES:[DI].VgaInfoBlock.VESASignature.Word[2], ‘AS’

JNZ @@Exit

LES DI,ES:[DI].VgaInfoBlock.VideoModePtr

PUSH ES

PUSH DI

MOV AX, OFFSET Vesa16Modes

PUSH AX

MOV AX,3

PUSH AX

CALL GetHighestCap

@@Exit:

end;

{$ENDIF}

{$F+}

procedure MyExitProc;

begin

ExitProc := OldExitProc;

CloseGraph;

end;

{$F-}

procedure Initialize;

var

InGraphicsMode : boolean;

begin

DirectVideo := False;

OldExitProc := ExitProc;

ExitProc := @MyExitProc;

repeat

VESA16 := InstallUserDriver(’VESA16′, @DetectVESA16);

{$IFDEF Use8514}

GraphDriver := IBM8514;

GraphMode := IBM8514Hi;

{$ELSE}

GraphDriver := Detect;

{$ENDIF}

InitGraph(GraphDriver, GraphMode, ”);

until ErrorCode = grOK;

end;

function degtrad(deg:real):real;

begin

degtrad:=deg*0.017453229252;

end;

procedure convertpoint(P:POINT; var x,y:integer);

var

dx,dy:real;

begin

dx:=(p.x);

dy:=(p.y);

x:=round(dx);

y:=round(dy);

end;

procedure drawline(lrec:linerec);

var

fx,fy,tx,ty:integer;

begin

setcolor(lrec^.color);

convertpoint(lrec^.fpoint,fx,fy);

convertpoint(lrec^.tpoint,tx,ty);

line(fx+640,512-fy,640+tx,512-ty);

end;

procedure showline;

var

lp:linerec;

begin

cleardevice;

lp:=firstline;

while lp<>nil do

begin

drawline(lp);

lp:=lp^.next;

end;

end;

procedure error(err:byte;s:string);

begin

clrscr;

writeln;

case err of

1:writeln(’file:’,s,’not found’);

2:writeln(s,’isn”t a 3d file’);

3:writeln(’err in line’,s);

4:writeln(’no one was indicated’);

end;

Ödev Hazırlama Kılavuzu

Salı, 06 Kasım 2007

Ödev Hazırlama Kılavuzu

Adım 1 :Bilgisayarınızın yerel diskine odev1 isimli bir klasör açarak e-mektup aracılığı ile gelen ve Excel’de hazırlanmış sipariş dosyalarını bu klasöre kaydediniz.

İpucu

İleti ile gelen dosyaları bilgisayarınızdaki herhangi bir klasöre kaydetmek için iki farklı yöntem kullanılabilir.

1.Yöntem :

İleti penceresinin Ekler bölümünde görüntülenen dosya adına tıklayın. Ekrana gelen Dosya Yükleme iletişim penceresindeki Dosyayı açmak mı bilgisayarınıza kaydetmek mi istiyorsunuz? Sorusuna cevap olarak, Kaydet düğmesine tıklayın. Açılan Farklı Kaydet iletişim kutusunda yer alan Konum satırından dosyayı kaydetmek istediğiniz klasörü seçerek Kaydet düğmesine tıklayın.

2.Yöntem :

İleti penceresinin Ekler kutucuğunda görüntülenen dosya adı üzerinde farenin sağ tuşuna tıklayın. Görüntülenen kısayol menüsünden Hedefi Farklı Kaydet komutunu seçin. Farklı Kaydet iletişim kutusunda bulunan Konum satırından dosyayı kaydetmek istediğiniz klasörü seçerek Kaydet düğmesine tıklayın.

Adım 2:Verilen adresten stok.xls dosyasına erişerek kopyalayınız ve odev1 klasörüne yapıştırınız.

Adım 3: Sipariş dosyalarını kullanarak hangi kitaptan toplam kaç adet sipariş verildiğini hesaplayın. Stok.xls dosyasında yer alan kitap stoklarını, oluşturduğunuz sipariş miktarlarıyla karşılaştırın. Stoklarınızla karşılayamadığınız siparişlerden üretilmesi gereken miktarları bulun.

İpucu

Adı Aylin isimli kitap için Ankara şubesinden 10, İstanbul şubesinden 10, İzmir şubesinden 10, Diyarbakır bayisinden 10 ve Adana bayisinden 10 adet olmak üzere toplam 50 adet sipariş verilmişse ve stokta bu kitaptan 25 adet bulunuyorsa üretilmesi gereken miktar 25 adet olmalıdır. Eğer stokta Adı Aylin isimli kitaptan 50 adet bulunuyorsa oluşturacağınız basılacak kitaplar listesinde bu kitap yer almamalıdır.

Adım 4:Excel programını çalıştırarak A2 hücresine Anadolu Yayıncılık A.Ş.’de 30.12.2002 Tarihine Kadar Basılacak Kitapların Listesi ve Baskı Sayısı başlığını yazınız. A4 hücresinden başlayarak D4 hücresine kadar Ürün Kodu, Kitabın Adı, Yazar ve Baskı Sayısı etiketlerini giriniz.

Adım 5:Basılması gereken kitapları Kitabın Adı sütununda stok.xls dosyasında verilen sıraya göre listeleyiniz. Kitap isimlerine göre Ürün Kodu ve Yazar sütunlarını doldurduktan sonra her kitaptan kaç adet basılacağını Baskı Sayısı sütununa giriniz.

Adım 6:Dosyayı tamamladıktan sonra, öğrenci numaranız_ders kodu_ödev numarası biçiminde isim vererek kaydedin. (Öğrenci numaranız 2018708026 ise dosya adı satırına 2018708026_by1354_1 ifadesini girmeniz yeterlidir.)