C# Grafik Programlama – “Mimar oldum”
Bu yazımızda 3 boyutlu bir düzlemde ev yapacağız. Daha sonra bu evi ortografik projeksiyon teknikleriyle görüntüsünü inceleyeceğiz.
Öncelikle bir 3 boyutlu düzlem düşünelim.
src: https://www.quora.com/Could-there-be-variants-of-the-3D-universe
Şimdi bu düzleme evimizi yerleştirelim. Ve koordinatları kodumuza ekleyelim.
Ben daha önceden oluşturduğum p adlı bir struct tipinde dizime aktardım. Bu struct 4 değer alıyor. 4.değerimiz homojenlik için. Burada ‘z’ kısmı derinlik yani 3.boyutumuz.
int x, y, z; x = 0; y = -100; z = 0; p[0].x = x; p[0].y = y; p[0].z = z; p[0].w = 1; p[1].x = x+200; p[1].y = y; p[1].z = z; p[1].w = 1; p[2].x = x+200; p[2].y = y + 200; p[2].z = z; p[2].w = 1; p[3].x = x; p[3].y = y + 200; p[3].z = z; p[3].w = 1; p[4].x = x+200; p[4].y = y; p[4].z = z - 400; p[4].w = 1; p[5].x = x+200; p[5].y = y + 200; p[5].z = z - 400; p[5].w = 1; p[6].x = x; p[6].y = y + 200; p[6].z = z - 400; p[6].w = 1; p[7].x = x; p[7].y = y; p[7].z = z - 400; p[7].w = 1; p[8].x = x+100; p[8].y = y + 280; p[8].z = z; p[8].w = 1; p[9].x = x+100; p[9].y = y + 280; p[9].z = z - 400; p[9].w = 1;
Daha sonra bulmacada noktaları birleştiriyormuşuz gibi
DrawLine(kalem1, (int)p[0].x, (int)p[0].y, (int)p[1].x, (int)p[1].y);
DrawLine komutuyla çizgileri çekiyoruz.
Eğer bir açıdan projeksiyon yapmazsak ( Oblique Projection ) 2 boyutlu sadece önden görünüşünü görebiliriz.
Daha sonra projeksiyonumuzu ve bakış açımızı belirliyoruz.
Burada matris ile noktalarımızı çarpıyoruz. Çarparken belirlediğimiz açıya göre işlem yapıyoruz.
– Buraya ek kodlar ve çarpımın yazım halleri eklenecek.
Son halini bu şekilde elde ediyoruz.
<img src="https://blog.webischia.com/wp-content/uploads/2017/03/cizim.jpg" alt="" width="204" height="212" class="alignnone size-full wp-image-227" />