Tải bản đầy đủ (.pdf) (12 trang)

Lecture Computer graphics: Lecture 26 - Fasih ur Rehman

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (24.44 KB, 12 trang )

Computer Graphics
Lecture 26
Fasih ur Rehman


Last Class


Shading



Phong Reflection Model


Today’s Agenda


Examples


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]


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)


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;


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);


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;


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;



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;


Summary


Examples


References






Fundamentals of Computer Graphics Third
Edition by Peter Shirley and Steve
Marschner
Interactive Computer Graphics, A Topdown Approach with OpenGL (Sixth

Edition) by Edward Angel.
/>rame_cpp.html



×