5 Ağustos 2009 Çarşamba

ZEYTİNLİ(!) ROCK FESTİVALİ

4 yıldır düzenlenen zeytinli rock festivali 5. yılında isim ve mekan değiştirerek "Rock Tatili Foça" adıyla 13-16 ağustosta Foça'da olacak
Her yıl "Zeytinli çok uzak","günübirlik gidemem ki" bahaneleriyle gitmediğim zeytinli rock festivali artık burnumun dibine geldikten sonra bu yıl hangi bahaneyle gitmeyeceğimi merak ediyorum doğrusu:)



İlgilenenler için bu da web sitesi. http://www.rocktatili.com/

3 Ağustos 2009 Pazartesi

GUI lere hızlı bir başlangıç

Eğer c#'a c gözüyle bakıp o hızla ilerlemeye kalkarsam çok yanılırım.Bu yüzden hemen gui'lere bir başlangıç yapmam gerekiyordu.Gui bileşenlerini tanımaya ve özelliklerini anlamaya başlamak şart oldu.Hemen bir panel yapıp içini check boxlarla doldurdum.Bunun yanında bir buton ve sonucu yazdırmak için bir de label koydum.Program butona basıldığında kaç check box'ın işaretli olduğunu label'a yazdıracak.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
int i, sayac = 0;
foreach (Control item in panel1.Controls)
{
if (item.GetType() == typeof(CheckBox))
{
CheckBox chk = (CheckBox)item;
if (chk.Checked)
sayac++;
}
}

label1.Text = sayac.ToString();
}
}
}

Gayet güzel:)
Ama kesinlikle yeterli değil:) Windows Form Application oluşturup küçük bir nodepad uygulaması yaptım.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)
{
//txt uzantılı dosyaları filtreler
openFileDialog1.Filter = "Text files|*.txt";
if (openFileDialog1.ShowDialog() == DialogResult.OK)

{
string file = openFileDialog1.FileName;
Stream strem = openFileDialog1.OpenFile();
//windowsun türkçe karakter kodlaması 1254 olduğu için dosyanın içindeki türkçe karakterler sorunsuz gösterilir
StreamReader read = new StreamReader(strem, System.Text.Encoding.GetEncoding(1254));
richTextBox1.Text= read.ReadToEnd();

}
}

private void Form1_Load(object sender, EventArgs e)
{


}

private void button2_Click(object sender, EventArgs e)
//txt uzantılı dosyaları filtreler
{saveFileDialog1.Filter = "Text files|*.txt";
//diyalog penceresinde tamama basıldığında
if (saveFileDialog1.ShowDialog() == DialogResult.OK){
string file = saveFileDialog1.FileName;

richTextBox1.SaveFile(file);

}
}

}
}

Herbir kontrolün kendine ait birçok özelliği var ve kullanılarak tecrübe edilerek öğrenilecek şeyler.Çok çalışmam lazım:)

Visual Studio 2008

Artık c# a biraz daha profesyonel yaklaşmak gerekiyor sanırım.Bunun için de Visual Studio şart oldu.Altı üstü bir program kurmak değil mi nasıl olsa! NetBeans kurar gibi kurarım ne olacak! Ama olmadı,bu sefer güldürmedi! Visual Studio 2008'i kurmaya çalışırken daha işin en başında .net framework 3.5'i kurarken şu hatayla karşılaştım.




Kurulumu kapattım ve bilgisayarımda yüklü olan .net framework 2.0'ı kaldırıp vs2008 kurulumuna devam edeyim belki düzelir dedim ama gene olmadı. .net framework 2.0 bilgisayarımı resmen sahiplenmiş,kaldıramıyorum. vs 2008'i acil kurmam gerektiği için nihai çözüm olan FORMAT yolunu tercih ettim:(

Artık tertemiz bir bilgisayarım ve gıcır gıcır bir vs2008'im var.Fakat hala NetBeans'i aramıyor değilim.

Hello World!

Hayatıma c# ile yeni bir başlangıç yapıyorum.Üniversitede c# sınavları çoktan seçmeli olunca gerçek hayatta da çoktan seçmeli bir c# bekliyor ister istemez insan:)
Visual Studio kurmadan önce kullandığım ide SharpDevelop oldu.Açık kaynak kodlu bir c# ide'si.SharpDevelop'ta c#'a başlangıç yaptığım,çözmeye,öğrenmeye çalıştığım birkaç özellik var.Mesela c# ta masaüstü uygulamalarda "anchor" özelliği default olarak top,left durumunda yani ekran büyütüldüğünde,uygulama sadece sol ve yukardan büyüyor.Bunu engellemek için "achor" kısmını top,left,right,bottom yaparsak büyüdüğünde orantılı genişleyip küçülüyor.İlerde kullanacağımı umut ederek ilk öğrendiğim özelliğin mutluluğunu yaşıyorum:)

c# ta uzun bir aradan sonra(yaklaşık 2.5 yıl) ilk yazdığım program "Hello World!" olmadı:)
c ile pointer'lara başladığımızda yaptığımız en anlaşılır pointer örneği değişkenin değerini değiştiren fonksiyondu.İsmail Hoca'nın örneği hala gözümün önünde:) Hatta bir sınavda da çıktı diye hatırlıyorum.Neyse konumuz Call by reference ve call by value.c# bu işi "ref" anahtar sözcüğü ile çözmüş.Şöyle ki;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static int x = 7;
static int y = 8;

static void func(ref int x, ref int y) {
int temp;
temp = x;
x = y;
y = temp;

}

static void Main(string[] args)
{
func(ref x,ref y);
Console.WriteLine("x :{0},y :{1}", x, y);
Console.ReadLine();

}
}
}

Sonuç beklediğimiz gibi "x:8,y:7" Gayet basit.ama bu kadar kolay olmamalı.call by reference için az uğraşmamıştık.Kulakların çınlasın İsmail Hocam.c'yi ve pointerları özleyeceğim aklıma gelmemişti hiç:)

8 Temmuz 2009 Çarşamba

3D ALANINDA KULLANILAN TEKNOLOJİLER


API (Uygulama Programlama Arayüzü)
Bir işletim sisteminin veya bir programın sunduğu bir hizmeti kullanmak için verilmiş yöntemlerdir. Bunu bir kitaplıktan işlev çağırmak gibi düşünebiliriz. Biz isteği API ile yaparız ve isteğimiz yerine getirilir, sonra programımız normal çalışmasına devam eder.

OpenGL
Open Graphics Library (OpenGL), 2 veya 3 boyutlu grafik çizdirmek için kullanılan bir API'dir bir başka deyişle kitaplıktır. Bu kitaplık yazılım geliştiricilere grafik donanımını yönetme şansı verir.

Bu kitaplık işletim sisteminden ve işletim sisteminin çalıştığı platformdan bağımsızdır. OpenGL sayesinde grafik kartının modeli veya işlemcinin mimarisi gibi donanımsal etkenlerden bağımsız programlama yapılır. Ayrıca aynı zamanda işletim sisteminden de bağımsız programlama yapılır. Kolay kullanım ve bu "taşınabilirlik" özellikleri yüzünden OpenGL popüler bir araç olmuştur.

OpenGL kullanılarak yazılmış programlar, Win32, MacOS ve X-Window pencere yöneticilerinde sorunsuz çalışırlar. Ada, C, C++, C# (SharpGL adı verilen sınıflar sayesinde), Fortran, Python,Perl ve Java programlama dilleri kullanılarak OpenGL kitaplığından faydalanılabilir.



GLUT
OpenGL platformdan bağımsız olduğu için bazı işlemler bu kitaplık ile yapılamaz. Örneğin kullanıcıdan veri almak, bir pencere çizdirmek gibi işler hep kullanılan pencere yöneticisi ve işletim sistemine bağlıdir. OpenGL Araç Kiti (GLUT - OpenGL Utility Toolkit) yazılım geliştiricileribi platform bağımlılığından kurtarır.

GLUT, birçok işletim sistemine aktarılmış bir kitaplıktır. Amacı OpenGL programlarının pencerelerini oluşturmak, klavye ve fareden veri almak gibi ihtiyaçlarını karşılamaktır.


Grafiksel Donanım

3D grafik tasarım ile yüksek başarıma ulaşmak için kullanılan donanımın önemi vardır. Gerek tasarım aşamasında, gerek bunu görüntüleme aşamasında kullanılan donanım önemlidir. Profesyonel anlamda 3D ile ilgilenler için bu noktada workstation kavramı devreye girer. Workstation (iş istasyonu), normal ev kullanıcıları için üretilen bilgisayarladan farklı olarak, genelde tek amaca yönelik yüksek kapasiteli bilgisayarlara verilen addır.

İşlemci

Render = işlemci + RAM olduğuna göre, hızlı render’lar yüksek performans sağlar. Render işlemi bilinenin aksine grafik kartıyla ilgili bir durum değildir.Bu iş, işlemci ve ram üzerinden gerçekleşir.

RAM

3D işinde ram’e çok ihtiyaç vardır. Hem çizim esnasında hem render esnasında olabildiğince yüksek ram kullanılır. Düşük ram'larda çizim yada render esnasında gecikme gibi sıkıntıların yanında max hatalar da verebilir.Çoğu zaman max'in bir hatası olarak düşünülen hataların sebebi düşük ram yada yetersiz donanımdır. Minimum 3 yada 4GB ram kullanmak performanslıdır.



Grafik Kartı

3D tasarımlarda en önemli parçalardan biri de grafik kartlarıdır. Grafik kartı seçilirken
Memory Amount
Memory Interface
Texture Fill Rate (billion/sec)
WireFrame
gibi kriterler göz önüne alınır.
CAD konusu için özel üretilmiş grafik kartları vardır, bunlar profesyonel grafik kartlarıdır.Bilgisayar destekli tasarımlar için özel olarak üretilmiş yazılımsal ve donanımsal özellikleriyle diğer grafik kartlarından farklı alt yapılara sahip kartlardır. Bu işi ticari olarak yapan kuruluşlar tarafından kullanılır.


Autocad

AutoDesk şirketinin 1980'lerin başından beri geliştirdiği bir bilgisayar destekli tasarım (CAD = Computer Aided Design) yazılımıdır. Teknik resim çizmek için kullanılan diğer yazılımlar gibi vektör tabanlıdır (çözünürlükten bağımsız, geometrik varlıkların oluşturulduğu bir veri tabanı). İlk vektörel çizim programlarından biridir.

Bazı mühendisler, Mimarlar, Teknik Ressamlar ve Teknikerler tarafından en yaygın kullanılan bir bilgisayar destekli çizim-tasarım yazılımıdır.

Yapımcı Firma:Autodesk
Son Sürüm:2010
İşletim Sistemi:Windows
Yazılım Türü:2B Teknik Çizim-3B Modelleme
Yazılım Dili:İngilizce

3ds Max


3ds Max (daha önceki ismi ile 3D Studio Max), AutoDesk tarafından geliştirilen bir 3D modelleme, görselleştirme ve animasyon programıdır.

Gelişmiş eklenti desteği ve kolay kullanımı ile 3ds Max, 3D modelleme yazılımları arasında en yaygın kullanıma sahip uygulamalardan biridir. Gelişmiş karakter modelleme özellikleri ile oyun geliştiricilerinin gözdesi haline gelmiştir. Film özel efektleri, mimari sunumlar ve endüstriyel tasarım sunumları gibi alanlarda da yaygın olarak kullanılmaktadır.



Grafik Nedir?Nerelerde Kullanılır?

Grafik tasarım bir mesajı iletmek, bir görseli geliştirmek veya bir düşünceyi görselleştirmek için metnin ve görsellerin algılanabilir ve görülebilir bir düzlemde, iki boyutlu veya üç boyutlu olarak organize edilmesidir. Baskı, ekran, hareketli film, animasyon, iç mimari, ambalaj tasarımı gibi birçok ortamda uygulanabilir. Grafik tasarımında ve grafik sanatlarda, görsel sanatların temel ilkeleri olan hizalama, denge, karşıtlık, vurgulama, hareket, görüntü, oran, yakınlık, tekrarlama, ritm ve birlik geçerlidir.

Mimarlık ve mühendislik alanlarında bilgisayar grafikleri, özellikle tasarım ve gerçekleştirme aşamasında zaman kazandıran bir faktör olarak ortaya çıkmıştır. Neredeyse tüm ürünler, bilgisayar üzerinde yapılan modellemelerin sayesinde bu kadar kusursuz geliştirilebiliyor. Bilgisayar Destekli Tasarım (BDT) yöntemiyle yolcu uçakları, taşıt araçları, bilgisayarlar ve her türlü endüstri ve sanayi ürünleri daha kolay tasarlanabiliyor.


BDT üzerinde canlandırmalar (animasyon) da yapmak olasıdır. Gerçek zamanlı modellemeler sayesinde, örneğin dişli bir sistemin çalışması veya bir arabanın yan kapısının olası bir kaza anında deformasyonu rahatlıkla gözlemlenebilir. Nesnelerin tel kafes olarak ifade edilmesiyle modelllerin içi görülebilir ya da istenirse nesne bazı matematiksel denklem, algoritma ve ışık hesaplamaları yardımıyla gerçeğe çok yakın olarak ekrana aktarılabilir.


Tüm bunların yanında eğitim, benzetim ve eğlence alanlarında da bilgisayar grafikleri teknolojilerine sıkça başvurulur. Bir nevi sanal eğitim aracı olan simülatörler, görsel teknolojileri ile gelecekte uçak, gemi kaptanı vb. olacak kişilerin eğitimini üstlenebilir. Bu cihazlarla çalışan pilotlar, tek uçuş maliyeti binlerce doları bulan uçaklara binmeden bunların gerçeğe tam uygun modelleri üzerinde eğitim görürler.
























11 Mart 2009 Çarşamba

3ds max 2008

3 boyutlu modellemeye yeni başlamak daha önce hiç kullanmadığım 3dsmax 2008 programının menüleri içinde kaybolmak zormuş hakkaten:) fakat 3dsmax 2008in çok anlaşılır bir arayüzünü olduğu için bu konuda pek zorlanacağımı zannetmiyorum.3ds max 2008 ile çalışmaya başladığımda programın temel kullanımı ile öğrendiğim şeyler şunlardı;

*sağ el altta "maximize viewport toggle" düğmesi,seçilen görünüm konumu penceresini tam ekran yapar.
*sağ alttan 3. düğme(el işareti) seçildiğinde ekran,tutulup çekilerek kaydırılabilir.
*mouse un scroll tuşu ile veya büyüteç işareti ile ekran yakınlaştırılıp uzaklaştırılabilir.
*bir cisim oluşturulurken,oluşturulacak cisim seçildikten sonra altındaki "keyboard entry" kısmına x,y,z koordinatlarını veya cisme göre yarıçapını verip "create" dedikten sonra istediğimiz konumda cismimiz oluşturulur.
*oluşturulan cisimlerin yerlerini değiştirmek için yukarıdaki "select and move"(4 taraflı ok) sembolü tıklanır.çıkan 3 farklı eksenden istenen biri seçilip sürüklenir.cismin o anki
koordinatlarını öğrenmek için ise "select and move" düğmesine sağ tıklanır.istersek buraya
değer girebiliriz.
*cismi döndürmek için "rotate" düğmesi tıklanır.istenen eksende çevrilir.döndürdükçe al
tarafta x,y,z için açılar görünür.bu düğmeye sağ tıklarsak açı değerleri gelir ve istersek elle değiştirebiliriz.belli miktarlarda döndürmek istersek sağ yukarda "angle snap toggle" düğmesine tıklanır.eğer derecesini de değiştirmek istersek sağ tıklayarak "angle" bölümünden değiştirebiliriz.
*2 cismi hizalarken ilk cisim seçilip sağ yukarıdaki "align" düğmesine basılır ve 2. cisim
tıklanır.çıkan pencerede cisimlerin birbirine göre hangi konumlarda olacağı belirtilir.
*2 boyutlu bir text eklemek için "shapes" tıklanır.textin boyutunu ise yukarıdaki "modify"
kısmından düzenleyebiliriz.
*hareket ettirdiğimiz bir cismin ekrana paralelliğinin bozulmasını istemiyorsak yukarıdaki
"view" kısmını "screen" yaparsak ekrana paralellik bozulmaz
*cisme efekt katmak(eğmek,eritmek..) için sağ üstteki "modify" düğmesi tıklanır
*cismi oluşturan bileşenleri görmek için oluşturulan cisim tıklandıktan sonra sağ üstteki
"modify" seçilir.cismin adı sağ tıklanıp "editable mesh" seçilir