Download presentation
Presentation is loading. Please wait.
Published byRosemary Bethany Flowers Modified over 9 years ago
1
Computer Graphics Lecture 26 Fasih ur Rehman
2
Last Class Shading Phong Reflection Model
3
Today’s Agenda Examples
4
Matrix Multiplication void matrixMul(float P[1][3],float T[3][3]) { int i,j,k; //Initialize Matrix P1 with Zero for(i=0;i<3;i++) P1[0][i]=0; /*Mutiply T with P and store the result in P1 */ for(k=0;k<1;k++) for(i=0;i<3;i++) for(j=0;j<3;j++) P1[k][i]+=P[k][j]*T[j][i]; }
5
Matrix Identity void matrixIdentity(float T[3][3]) { int i,j; /* Make matrix T as Identity Matrix by Storing 1 in the left diagonal positions of Matrix T and store 0 in other positions */ for(i=0;i<3;i++) { for(j=0;j<3;j++) { if(i==j) T[i][j]=1; else T[i][j]=0; }
6
Translation void translate_point(int x,int y,int tx,int ty) //Translate a point by translation factors tx,ty { float T[3][3]; matrixIdentity(T); T[2][0]=tx; T[2][1]=ty; P[0][0]=x; P[0][1]=y; P[0][2]=1; matrixMul(P,T); }
7
Rotation void rotate_point(int x,int y,float angle) // Rotate a point by given angle { float R[3][3]; float radian; radian=(3.141/180)*angle; matrixIdentity(R); R[0][0]=cos(radian); R[1][0]=-1*sin(radian); R[2][0]=0; R[0][1]=sin(radian); R[1][1]=cos(radian); R[2][1]=0; P[0][0]=x; P[0][1]=y; P[0][2]=1; matrixMul(P,R); }
8
Scale void scale_point(int x,int y,float sx,float sy) /* Scale a point by scaling factors sx,sy and with respect to some fixed point */ { float S[3][3]; matrixIdentity(S); S[0][0]=sx; S[2][0]=0; S[1][1]=sy; S[2][1]=0; P[0][0]=x; P[0][1]=y; P[0][2]=1; matrixMul(P,S); }
9
Reflect void reflect_point_X(int x,int y) { float R[3][3]; matrixIdentity(R); R[1][1]=-1; P[0][0]=x; P[0][1]=y; P[0][2]=1; matrixMul(P,R); }
10
Shear void shear_point_Y(int x,int y,float shy) { float R[3][3]; matrixIdentity(R); R[0][1]=shy; P[0][0]=x; P[0][1]=y; P[0][2]=1; matrixMul(P,R); }
11
Summary Examples
12
References Fundamentals of Computer Graphics Third Edition by Peter Shirley and Steve Marschner Interactive Computer Graphics, A Top-down Approach with OpenGL (Sixth Edition) by Edward Angel. http://www.start2code.com/Cresources/2dfra me_cpp.html
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.