Grafik ve Animasyon temel tanımlamalar

Grafik; görüntünün bir yüzey üzerinde temsil edilmesidir. Fotoğraflar, çizimler, diyagramlar, haritalar ve diğer resimler birer grafiktir. Grafikler genelde yazı, illüstrasyon ve renkten oluşur. Kelimenin öz Türkçesi Çizge dir. Ancak pek fazla kullanılmamaktadır. (kaynak: Wikipedia) Bununla birlikte Çizim terimi kısmi olarak bu anlamı yansıtır.

Animasyon : Animasyon grafiklere zaman boyutunun katılarak gösterim anına bağlı olarak grafiklerin değiştirilmesi suretiyle canlandırma diğer bir deyişle hareketlendirme yapılmasıdır.

Bu sayede insan gözünün doğal algılamasındaki sürekli hareket hali karşılanmış olur.  Çünkü göz ortamı gözlemlerken gerçek dünya sürekli hareketli görüntüler sunar; hatta her şeyin hareketsiz olduğu bir ortamda bile gözün hareketiyle görüntünün göreli olarak hareketliliği oluşur.

Animasyon sayesinde durağan bir grafiğe göre gerçeklik algısı daha da pekiştirilerek tasarımdaki iletişim mesajı sabit bir grafiğe göre daha etkili verilmiş olur.

Geçmişten günümüze çok çeşitli animasyon teknikleri uygulanmıştır. Günümüzde kullanılan başlıca teknikler ise 2D, 3D, stop motion ve cut-out teknikleridir.

Bilgisayar ortamında saklanan ve animasyonda kullanılan grafikler temel olarak piksel tabanlı veya vektörel tabanlı biçimlerden biriyle ifade edilir.

Piksel tabanlı grafiklerde görüntüyü oluşturan en küçük birim (nokta) piksel olarak adlandırılır. Bir piksel tek bir renk tonunu ifade eder. Piksel formatında, bir grafiği oluşturan her bir pikselin bilgisi ayrı ayrı saklanır. Genelde gerçek fotoğrafları veya renk çeşitliliği ve detayların çok fazla yoğun olduğu grafikleri saklamak için piksel formatı tercih edilir. Piksel grafikler rasterize veya bitmap olarak da ifade edilir.

Vektörel format ise daha çok elle tasarlanmış ve nispeten daha az detay içeren garfikleri saklamak amacıyla kullanılır. Bu biçimde grafikler matematiksel ifadelere dönüştürülerek saklanır ve bu sayede farklı ölçeklerde kayıpsız olarak yeniden oluşturulabilir; bu piksel formatlarda pek mümkün değildir. Örneğin bir logo tasarımı el ürünüdür ve az miktarda renk ve çizim detayı içerdiğinden tasarımında kullanılan uygulamalar genellikle vektörel formatı destekler. Vektörel grafikler genelde piksel tabanlılara göre belleklerde daha az yer kaplar.

Piksel ve vektörel formatlar birbirine dönüştürülebilir. Piksele dönüştürme işlemine rasterizasyon vektöre dönüştürme işlemine ise tracing (iz sürme) adı verilir.

Teknolojinin Bilimsel İlkeleri (Donanım)

BİLGİSAYAR

Verileri depolayan, veriler üzerinde aritmetiksel ve mantıksal işlemler yapan ve sonuçları gösteren elektronik ve mekanik cihazlardır. Günümüzde birbirleriyle bağlantılı olarak iletişim aracı görevini de üstlenirler. Temel olarak donanım ve yazılım olmak üzere iki öğeden oluşurlar.

Donanım (Hardware)

Bilgisayarın elektronik, mekanik ve fiziksel bileşenleridir. Donanımlar işlevlerine göre merkezi, giriş, çıkış veya giriş/çıkış(hem giriş hem de çıkış) donanımları olarak sınıflandırılırlar.

Merkezi donanımlar: Anakart, işlemci, RAM
Giriş donanımları:  Klavye, fare, tarayıcı, web kamerası, mikrofon, grafik tablet vb.
Çıkış donanımları: Monitör(ekran), projeksiyon cihazı, yazıcı, hoparlör vb.
Giriş/Çıkış donanımları: HDD, SSD, Dokunmatik ekran, kombo yazıcı/tarayıcı, flash bellek vb.

 

Temel Donanımlar

CPU (Central Processing Unit – Merkezi İşlem Birimi – Mikro işlemci – İşlemci)
Bilgisayarda tüm verilerin işlendiği, tüm süreçlerin denetlendiği ve yönetildiği en merkezi birimdir. Bilgisayarın en önemli bileşenidir. Anakarta işlemci soketi ile yerleştirilir. Yüksek hızlarda çalıştığı için çok ısınır, dolayısıyla soğutucu metal parçalara ve fana ihtiyaç duyar.

 

Anakart (Mainboard)
Bilgisayarın kasa içindeki veya dışındaki tüm  bileşenlerini birleştiren ana elektronik devredir. Üzerine diğer tüm parçalar çeşitli bağlantı noktaları üzerinden bağlanır. Anakart üzerindeki bağlantı noktaları türleri:

Soket, anakarta paralel takılan devre bağlantı alanı
Slot, anakarta dik takılan devre bağlantı alanı
Port, anakarta bir kablo veya kablo grubu ucundaki bir jack(cak veya konektör) ile yapılan bağlantı alanı

Donanım bileşenleri anakarta olan bağlantısına göre şöyle sınıflandırılırlar:
Dahili (Internal): Kasa içindeki donanımlar
Harici (External): Kasa dışındaki donanımlar
Tümleşik (Onboard) Anakart devresi üzerinde bütünleşik (ayrılamaz) olarak bulunan bileşenler.

Bilgisayarın değiştirilebilecek temel parçalarının min. ve maks. kapasitelerini anakart belirler. Parça değişimi veya ilavesi ile yapılan donanımsal iyileştirmelere upgrade (donanımsal güncelleme) adı verilir. Taşınabilir bilgisayarların çoğu bileşeni onboard (tümleşik) olduğundan upgrade imkanları kısıtlıdır.

 

RAM
Bilgisayarda sadece o esnada çalışan uygulamaların yüklendiği geçici (elektrik kesildiğinde silinen) hafızalardır. Kalıcı belleklere göre daha düşük kapasiteli ancak hızlıdırlar. Elektronik olarak imal edilen chipler(entegre) ve bunların yerleştirildiği kart şeklindedir. Anakart üzerinde işlemci soketinin yakınındaki RAM slotlarına takılırlar.

 

HDD (Hard Disk Drive – Sabit Disk Sürücü)
Bilgisyara yüklenmiş tüm programların, çeşitli programlarla oluşturulup kaydedilmiş belgelerin, resim, müzik gibi arşivlenmiş dosyaların tutulduğu yüksek kapasiteli kalıcı hafızalardır. Verileri özel alaşımlı diskler üzerine okuma/yazma kafası adı verilen bir mekanizma ile manyetik olarak yazar ve okurlar; bu nedenle yavaş çalışırlar. Dahili olanları anakarta SATA portu üzerinden kabloyla bağlanırlar. Harici olanları USB, e-SATA vb. portlarla anakarta dışarıdan bağlanırlar.

 

SSD (Solid State Disk – Katı Hal Diskleri)
Günümüzde HDD’lere alternatif olarak aynı işi görmek üzere üretilmişlerdir. Farkları üretim teknolojilerinin tamamen elektronik olması ve böylece HDD’lere göre daha hızlı çalışmalarıdır. Ancak HDD’lere göre kapasiteleri düşük ve maliyetleri fazladır. Anakarta aynen HDD’ler gibi SATA (dahili), USB veya e-SATA (harici) portları üzerinden kabloyla bağlanırlar.

 

ROM (Read Only Memory – Yalnız okunabilir bellek)
Anakart üzerinde ilk açılışta çalışan temel programın (BIOS) tutulduğu entegre bir kalıcı hafızadır. BIOS programı hiçbir program yüklenmeden ilk açılışta devreye girip sistemin çalışmasını test eder bu işleme POST denir. Ardından setup ayarlarını uygulayarak sistemi işletim sistemine devreder. ROM (Yalnız okunabilir bellek) adını almasına rağmen günümüzdeki çeşitlerinde (Flash ROM) içine yazılabilmektedir. Ancak içine yazması yavaş, zor ve risklidir bu işleme BIOS güncelleme denir. Okuması kolaydır, zira bilgisayarın her açılışda içindeki  program okunarak çalıştırılır. Riskli yazma işlemine girmeden değiştirilen setup ayarları ve sürekli değişen sistem saat/tarih bilgisi bu entegrenin içinde RAM gibi çalışan özel bir alana yazılır. Ancak bu alanın sürekli elektrikle beslenmesi gerekir. Bunun için anakart üzerindeki bir pille (BIOS pili, CR2032) besleme sağlanmış olur.

 

CD/DVD/BD Sürücüler
Verileri, belgeleri vb. birden fazla bilgisayara aktarmak veya arşivlemek için kullanılan taşınabilir optik diskleri okuyan (veya bazılarında yazan) donanım bileşenleridir. Veriler sürücüden çıkarılabilir diskler üzerine lazer ışığı yardımıyla yazılır ve okunurlar; bu nedenle optik (ışıkla iş gören) hafıza olarak sınıflandırılırlar. Veri yazamada ve okumada farklı lazer teknlojileri kullanılarak sırasıyla CD, DVD, BD çeşitleri geliştirilmiştir.

 

Bellek
Verilerin geçici veya kalıcı olarak tutulduğu  bileşenlerdir.

Geçici bellek: fiziksel bellek(sistem belleği/RAM), ön bellek(cache) gibi bilgilerin yalnızca çalışma anında tutulduğu hafızalardır.
Kalıcı bellek: HDD, SSD, ROM gibi bilgisayar kapatıdığında içeriği silinmeyen hafızalardır.

Dahili bellekler (Kasanın içinde): HDD, SSD, RAM, İşlemcinin içindeki bellekler (L1 ve L2 cache (önbellekler) ve Register (Kaydedici))
Harici bellekler (Taşınabilir): Flash bellek, taşınabilir disk, CD/DVD/BD gibi verilerin bir bilgisayardan diğerine aktarılabilmesini sağlayan kalıcı belleklerdir.

Dahili Bellekler kapasitelerine göre (Büyükten küçüğe): HDD, SSD, RAM, L2 Cache, L1 Cache, Register

Dahili Bellekler hızlarına göre (Hızlıdan yavaşa): Register, L1 Cache, L2 Cache, RAM, SSD, HDD

Üretim teknolojisine göre belleklerin sınıflandırılması:
Elektronik bellekler (SSD, RAM, ROM, Flash Bellek ve hafıza kartları),
Manyetik bellekler (HDD),
Optik bellekler (CD, DVD, BD)

Sanal bellek: RAM’in yetersiz kaldığı durumlarda HDD, SSD veya Flash belleklerin bir kısmının RAM gibi kullanılması ile oluşturulan takviye belleklerdir.

Yazılım (Program, Software)

Donanımların neyi nasıl yapacağını düzenleyen komutlar topluluğudur. Yazılım türleri:

Sistem yazılımı (işletim sistemi)
Bilgisayarın çalışmasını sağlayan, donanımlarla diğer yazılımlar arasında iletişimi gerçekleştiren ana programdır (Windows, Linux, MacOS vb.).

Uygulama yazılımı (Paket yazılım)
Bilgisayarda istenilen işleri yapmada kullanılan amaca özel programlardır (Media Player, Word, Photoshop,  Acrobat Reader, Chrome vb.).

Sürücü yazılımı (Driver software)
Farklı üreticiler tarafından üretilen donanımların özelliklerini işletim sistemine tanıtmak için yüklenen özel programlardır (Ekran kartı sürücüsü, ses kartı sürücüsü vb.). Yeni bir donanım takıldığında veya işletim sistemi yeni kurulduğunda sürücülerin yüklenmesi gerekir. Ancak sürücüler yüklendikten sonra ilgili donanım tüm özellikleriyle kullanılabilir.

 

Mayın Tarlası Örnek Uygulaması

Mayın tarlası örneği kodları:


Button[,] b = new Button[10, 10];
        int[,] mayin;
        int mayin_adet;

        private void Form1_Load(object sender, EventArgs e)
        {
           mayin = new int[b.GetLength(0), b.GetLength(1)];
            /// mayın üretme 
           mayin_adet = b.Length/4;
            Random r=new Random();
            for (int i = 0; i < mayin_adet; i++)
            {
                int sat=r.Next(mayin.GetLength(0));
                int sut=r.Next(mayin.GetLength(1));
                if(mayin[sat,sut]==-1)
                {
                    i--;
                continue;
                }
                mayin[sat,sut ] = -1;
                adet_yaz(sat,sut);
            }

            for (int i = 0; i < b.GetLength(0); i++)
            {
                for (int j = 0; j < b.GetLength(1); j++)
                {
                    b[i, j] = new Button();
                    b[i, j].Name = "b" + i + "_" + j;
                    //b[i, j].Text = mayin[i, j].ToString();
                    b[i, j].Width = 50;
                    b[i, j].Height = 50;
                    b[i, j].Left = j * b[i, j].Width;
                    b[i, j].Top = i * b[i, j].Height;
                    b[i, j].Click += new EventHandler(btn_tiklanidi);//olay tanimlama
                    b[i, j].MouseDown += b_tik;
                        Controls.Add(b[i, j]);
                }
            }
        }

        void b_tik(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right && (sender as Button).Text == "P") (sender as Button).Text = "";
            else if (e.Button == MouseButtons.Right) (sender as Button).Text = "P";
        }



        void btn_tiklanidi(object sender, EventArgs e)
        {
            string[] bno=(sender as Button).Name.Substring(1).Split('_');
            int i = Convert.ToInt32(bno[0]);
            int j = Convert.ToInt32(bno[1]);
            if (mayin[i, j] != -1)
            {
                if (mayin[i, j] != 0) b[i, j].Text = mayin[i, j].ToString();
                else etrafi_bosalt(i,j);
                b[i, j].Enabled = false;
            }
            else {
                hepsini_ac();
            }
        }

        void adet_yaz(int sat, int sut)
        {
            int sat_bas = (sat == 0) ? 0 : (sat - 1);
            int sat_bit = (sat == (mayin.GetLength(0) - 1)) ? (mayin.GetLength(0) - 1) : (sat + 1);
            int sut_bas = (sut == 0) ? 0 : (sut - 1);
            int sut_bit = (sut == (mayin.GetLength(1) - 1)) ? (mayin.GetLength(1) - 1) : (sut + 1);

            for (int i = sat_bas; i <= sat_bit; i++)
            {
                for (int j = sut_bas; j <= sut_bit; j++)
                {
                    if (mayin[i, j] != -1) mayin[i, j]++;
                }
            }
        }

        void hepsini_ac()
        {
            for (int i = 0; i < b.GetLength(0); i++)
            {
                for (int j = 0; j < b.GetLength(1); j++)
                {
                    if (mayin[i, j] == -1) b[i, j].Text = "*";
                    else if (mayin[i, j] != 0) b[i, j].Text = mayin[i, j].ToString();

                    b[i, j].Enabled = false;
                }
            }
        }

        void etrafi_bosalt(int sat,int sut)
        {
            b[sat, sut].Text = "x";
            int sat_bas = (sat == 0) ? 0 : (sat - 1);
            int sat_bit = (sat == (mayin.GetLength(0) - 1)) ? (mayin.GetLength(0) - 1) : (sat + 1);
            int sut_bas = (sut == 0) ? 0 : (sut - 1);
            int sut_bit = (sut == (mayin.GetLength(1) - 1)) ? (mayin.GetLength(1) - 1) : (sut + 1);

            for (int i = sat_bas; i <= sat_bit; i++)
            {
                for (int j = sut_bas; j <= sut_bit; j++)
                {
                    if (b[i,j].Text=="x") continue;
                    if (mayin[i, j] != 0) b[i, j].Text = mayin[i, j].ToString();
                    else etrafi_bosalt(i, j);
                    b[i, j].Enabled = false;

                }
            }
            b[sat, sut].Text = "";
        }

Animasyon Teknikleri 2 Arasınav Uygulaması

2013 2014 Öğretim yılı bahar dönemi Bil.Des.Tas. ve Ani. Programın Animasyon Teknikleri 2 dersi uygulama sınavı .fla dosyası için tıklayınız.

anim tekn 2 vize

Uygulama kodları:

var firla:Boolean = false;
var hiz:int = 10;
var topyon:int = hiz;
this.stop();

addEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);

function fl_EnterFrameHandler(event:Event):void
{
	top.x +=  topyon;
	top.rotation +=  topyon;
	if (firla)
	{
		ci.y -=  hiz;
	}
	if (top.hitTestObject(tsac) || top.hitTestObject(tsoc))
	{
		topyon *=  -1;
	}
	if (top.hitTestPoint(ci.x,ci.y,true))
	{
		gotoAndPlay("bitti");
	}
	if (ci.hitTestObject(usc))
	{
		firla = false;
		ci.x = uc.x;
		ci.y = uc.y;
	}
}


stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_KeyboardDownHandler);

function fl_KeyboardDownHandler(event:KeyboardEvent):void
{
	if (event.keyCode == Keyboard.LEFT)
	{
		uc.x -=  hiz;
	}
	else if (event.keyCode==Keyboard.RIGHT)
	{
		uc.x +=  hiz;
	}
	else if (event.keyCode==Keyboard.SPACE)
	{
		firla = true;

	}
	if (uc.hitTestObject(sac))
	{
		uc.x -=  hiz;
	}
	else if (uc.hitTestObject(soc))
	{
		uc.x +=  hiz;

	}
	if (! firla)
	{
		ci.x = uc.x;
	}
}