Her soru 20 puandýr. Süre 60 dakikadýr. Herkese baþarýlar J
1. Bir küp, 3 boyutlu uzayda x eksenine paralel olarak 2 misline çýkarýlarak döndürülmek isteniyor. Dönüþüm matrisini yazýnýz (perspektifi göz ardý ediniz)

Yukarýdaki döndürme iþleminin algýlanmasý için verilen gölgelendirmeye göre soldaki resimdeki koyu göle saðda alta gelmiþtir. Dolayýsýyla þekil 90 derece z ekseninde saat yönünde döndürülmüþtür.

Yukarýdaki ölçekleme iþlemine ilave olarak aþaðýdaki döndürme iþlemi de yapýlmýþtýr:

Sonuç matrisi S(2,1)R(90) olarak iki matrisin çarpýmý þeklinde hesaplanabilir
2. Aþaðýdaki þekilde 2 boyutlu bir gemi resmi verilmiþtir bu gemi yandaki þekilde gösterildiði üzere dalganýn üzerine oturtulmak isteniyor. Dönüþüm matrisini yazýnýz:

T(3,4) R(-45) cevabý yeterliydi. Bu matrisler açýlmýþ halde aþaðýdaki þekilde de yazlýabilir:


3. Bir önceki soruda (2. Soruda) verilen gemi resmi üzerinde aþaðýda gösterildiði gibi bir gemici ve bir de kuþ bulunsaydý bu þekillerin dönüþüm matrisleri nasýl olurdu? (yukarýda tanýmladýðýnýz matrisleri kullanabilirsiniz)
Yukarýdaki matrisin aynýsýdýr : T(3,4) R(-45)

4. Aþaðýdaki þekillerden birisini çizerek bu çizimi yapan kodu yazýnýz. (hangi þekli seçtiðinizi belirtiniz). Kodunuz tam olmak zorunda deðildir. Kodunuzdaki ufak imla hatalarýndan puan kýrýlmayacaktýr. Ancak kodunuzdaki main fonksiyonunu ve display fonksiyonunu tam olarak yazýnýz.

Bu sorunun çözümü sýnýfta yapýlmýþ ve dersin sitesinde açýklanmýþtýr.
Soldaki þeklin Tam çözüm için týklayýnýz.
Saðdaki þeklin tam çözümü için týklayýnýz.
5. Aþaðýdaki kodun sonucunu ekrana çiziniz:
#include <GL/glut.h>
#include <stdlib.h>
#include <stdio.h>
static void init(void)
{
glClearColor(0.93f, 0.93f, 0.93f, 0.0f);
glColor3f(0.0f, 0.0f, 0.0f);
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0,1.0,0.0);
glRotatef(45, 1, 0, 0);
glScalef(0.5,0.5,0.5);
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
glutSolidTeapot (1.0);
glFlush();
}
void reshape(int w, int h)
{
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (200, 200);
glutCreateWindow (argv[0]);
init();
glutReshapeFunc (reshape);
glutDisplayFunc (display);
glutMainLoop();
return 0;
}
Çözüm aþaðýdaki þekildedir:
