コード例 #1
0
ファイル: main.cpp プロジェクト: raffathamires/cg1
//Desenha a mesa
void drawTable()
{
    //Desenha a tᢵa da mesa
    glPushMatrix();
    rotaciona();
    glColor3f(0.5f, 0.35f, 0.05f);
    glTranslatef(75.0f, -16.0f, 75.0f);
    glScalef(100.0f,2.0f,100.0f);
    glutSolidCube(1);
    glPopMatrix();

    //Desenha as pernas da mesa
    glPushMatrix();
    rotaciona();
    glColor3f(0.5f, 0.35f, 0.05f);
    glTranslatef(30.0f,-87.0f,30.0f);
    glScalef(1.0f,1.0f,1.0f);
    glRotatef(-90.0f,1.0f,0.0f,0.0f);
    glutSolidCylinder(5.0f,70.0f,20.0f,10.0f);
    glPopMatrix();

    glPushMatrix();
    rotaciona();
    glColor3f(0.5f, 0.35f, 0.05f);
    glTranslatef(120.0f,-87.0f,30.0f);
    glScalef(1.0f,1.0f,1.0f);
    glRotatef(-90.0f,1.0f,0.0f,0.0f);
    glutSolidCylinder(5.0f,70.0f,20.0f,10.0f);
    glPopMatrix();

    glPushMatrix();
    rotaciona();
    glColor3f(0.5f, 0.35f, 0.05f);
    glTranslatef(120.0f,-87.0f,120.0f);
    glScalef(1.0f,1.0f,1.0f);
    glRotatef(-90,1.0,0,0);
    glutSolidCylinder(5.0f,70.0f,20.0f,10.0f);
    glPopMatrix();

    glPushMatrix();
    rotaciona();
    glColor3f(0.5f, 0.35f, 0.05f);
    glTranslatef(30.0f,-87.0f,120.0f);
    glScalef(1.0f,1.0f,1.0f);
    glRotatef(-90.0f,1.0f,0.0f,0.0f);
    glutSolidCylinder(5.0f,70.0f,20.0f,10.0f);
    glPopMatrix();
}
コード例 #2
0
ファイル: main.cpp プロジェクト: raffathamires/cg1
//Desenha uma esfera
void drawSphere()
{
    glPushMatrix();
    rotaciona();
    glTranslatef(esferaX,-11.0,esferaZ);
    glColor3f(0.5, 0.1, 0.1);
    glScalef(0.5,0.5,0.5);
    glutSolidSphere(7,12,12);
    glPopMatrix();
}
コード例 #3
0
ファイル: main.cpp プロジェクト: raffathamires/cg1
//Desenha um teapot
void drawTeapot()
{
    glPushMatrix();
    rotaciona();
    glTranslatef(teapotX,-11.0,teapotZ);
    glColor3f(1, 1, 0);
    glScalef(0.5,0.5,0.5);
    glutSolidTeapot(5);
    glPopMatrix();
}
コード例 #4
0
ファイル: 4.c プロジェクト: AnthonyTailer/LAB-I
main(){
int n,cont=0,i=1;
printf("\t VERIFICA QUANTOS NÚMEROS SãO PRIMOS CIRCULARES ENTRE 1000 E 20000\n\n");

for(n=1000; n <= 20000;n++){

       if(primos_circ(n) == 1){ // avalia se o número é primo
            cont = qtdDigitos(n);
            if(rotaciona(n,cont) == 1 )//avalia se é primo circular
                printf("\nO %d° número primo circular é %d",i++,n);
        }
  }
}
コード例 #5
0
ファイル: main.cpp プロジェクト: raffathamires/cg1
//Desenha o gato
void drawCat()
{
    //Push
    glPushMatrix();

    //Gato
    rotaciona();
    glColor3f(0.5,0.5,0.4); //Cor do gato
    glTranslatef(catX,-11.0,catZ); //Posicao inicial do gato
    glScalef(0.5,0.5,0.5); //Escala (Cabe硠do gato)
    glutSolidSphere(8,16,16); //Esfera (Cabe硠do gato)
    glRotatef(catRotation, 0.0, 1.0, 0.0); //Rotacao do gato
    //Fucinho
    glColor3f(0.5,0.5,0.4); //Cor do fucinho
    glTranslatef(0,0.0,4.0); //Transla磯 do fucinho
    glScalef(0.9,0.8,0.8); //Escala (Fucinho do gato)
    glutSolidCone(8,9,16,16); //Cone (Fucinho do gato)
    //Olhos
    glColor3f(1,1,1); //Cor dos olhos do gato
    glTranslatef(-4.2,5.0,2.0); //Transla磯 do olho direito
    glScalef(0.3,0.3,0.3); //Escala dos olhos do gato
    glutSolidSphere(8,16,16); //Esfera (Olho direito do gato)
    glTranslatef(26.0,0.0,0.0); //Transla磯 do olho esquerdo
    glutSolidSphere(8,16,16); //Esfera (Olho esquerdo do gato)
    //Orelhas
    glColor3f(0.5,0.5,0.4); //Cor das orelhas
    glScalef(1.5,1.5,1.5); //Escala (Orelhas do gato)
    glRotatef(-80.0,1.0,0.0,0.0); //Rotacao da orelha esquerda do gato
    glRotatef(30,0.0,1.0,0.0); //Rotacao da orelha esquerda do gato
    glTranslatef(0.0,15.0,4.0); //Transla磯 da orelha esquerda do gato
    glutSolidCone(8,15,16,16); //Cone (Orelha esquerda do gato)
    glRotatef(-57.0,0.0,1.0,0.0); //Rotacao da orelha direita do gato
    glTranslatef(-18.0,0.0,9.0); //Transla磯 da orelha direita do gato
    glutSolidCone(8,15,16,16); //Cone (Orelha direita do gato)
    //Esfera nos Olhos
    glColor3f(0,0,0); //Cor dos olhos do gato
    glTranslatef(15.5,-18.0,-9.5); //Transla磯 do olho direito
    glScalef(0.3,0.3,0.3); //Escala dos olhos do gato
    glutSolidSphere(8,16,16); //Esfera (Olho direito do gato)
    glRotatef(80.0,1.0,0.0,0.0); //Rotacao da orelha direita do gato
    glRotatef(5.0,0.0,1.0,0.0); //Rotacao da orelha direita do gato
    glTranslatef(-52.0,26.0,0.5); //Transla磯 do olho esquerdo
    glutSolidSphere(8,16,16); //Esfera (Olho esquerdo do gato)

    //Pop
    glPopMatrix();
}
コード例 #6
0
ファイル: P1.c プロジェクト: hugonomura/CG2
int main(){
	//Pontos iniciais
	Ponto P1, P2, P3, P4, P5, P6, P7, P8;

	float se, co, tz, cpz;

	//Pontos rotacionados
	Ponto *rP1, *rP2, *rP3, *rP4, *rP5, *rP6, *rP7, *rP8;

	//Pontos Projetados perspectivamente
	Ponto *iP1, *iP2, *iP3, *iP4, *iP5, *iP6, *iP7, *iP8;

	//Declaração da matriz de rotação
	struct matriz4x4 mRotaciona;

	int RXmin,RXmax,RYmin,RYmax,a,b;

	Window win;
	Display *display;
	int width = 256, height = 256, x = 0, y = 0, i, tx, ty,ref,rot;
	GC gc;
	unsigned long valuemask = 0;
	XGCValues values;
	XColor cor;


	P1.x =  30; P1.y = -10; P1.z =  10; P1.W = 1;
	P2.x =  30; P2.y = -10; P2.z = -10; P2.W = 1;
	P3.x =  30; P3.y =  10; P3.z =  10; P3.W = 1;
	P4.x =  30; P4.y =  10; P4.z = -10; P4.W = 1;
	P5.x = -30; P5.y = -10; P5.z =  10; P5.W = 1;
	P6.x = -30; P6.y = -10; P6.z = -10; P6.W = 1;
	P7.x = -30; P7.y =  10; P7.z =  10; P7.W = 1;
	P8.x = -30; P8.y =  10; P8.z = -10; P8.W = 1;

	//Variaveis para calculo do seno e cosseno do angulo de rotacao
	se = sin(90*PI/180);
	co = cos(90*PI/180);

	//Inicializacao da matriz de Rotacao em relacao ao eixo z

	mRotaciona.a11 = co; mRotaciona.a12 = -se; mRotaciona.a13 = 0; mRotaciona.a14 = 0;
	mRotaciona.a21 = se; mRotaciona.a22 = co; mRotaciona.a23 = 0; mRotaciona.a24 = 0;
	mRotaciona.a31 = 0; mRotaciona.a32 = 0; mRotaciona.a33 = 1; mRotaciona.a34 = 0;
	mRotaciona.a41 = 0; mRotaciona.a42 = 0; mRotaciona.a43 = 0; mRotaciona.a44 = 1;



//**************************************  (a)  **********************************************

	//Estou utilizando a regra da mão direita
	//Chamada da funcao que rotaciona o ponto
	rP1 = rotaciona(&mRotaciona, &P1);
	rP2 = rotaciona(&mRotaciona, &P2);
	rP3 = rotaciona(&mRotaciona, &P3);
	rP4 = rotaciona(&mRotaciona, &P4);
	rP5 = rotaciona(&mRotaciona, &P5);
	rP6 = rotaciona(&mRotaciona, &P6);
	rP7 = rotaciona(&mRotaciona, &P7);
	rP8 = rotaciona(&mRotaciona, &P8);

	
//**************************************  (b)  **********************************************

	//Projeção Perspectiva

	printf("\n\nDigite o valor Tz: \n");
	scanf("%f",&tz);
	printf("\nDigite o valor Cpz: \n");
	scanf("%f",&cpz);

	iP1 = Projeta(tz, cpz, rP1);
	iP2 = Projeta(tz, cpz, rP2);
	iP3 = Projeta(tz, cpz, rP3);
	iP4 = Projeta(tz, cpz, rP4);
	iP5 = Projeta(tz, cpz, rP5);
	iP6 = Projeta(tz, cpz, rP6);
	iP7 = Projeta(tz, cpz, rP7);
	iP8 = Projeta(tz, cpz, rP8);

	
//**************************************  (c)  **********************************************


	//Entrada dos valores do retangulo de visualizacao
	printf("\n\nDigite o valor do RXmin: \n");
	scanf("%f",&RXmin);
	printf("\nDigite o valor RXmax: \n");
	scanf("%f",&RXmax);

	printf("\n\nDigite o valor do RYmin: \n");
	scanf("%f",&RYmin);
	printf("\nDigite o valor RYmax: \n");
	scanf("%f",&RYmax);

	//width = modulo(RXmin) + modulo(RXmax);
	//height = modulo(RYmin) + modulo(RYmax);
	
	win = XCreateSimpleWindow(display, RootWindow(display, DefaultScreen(display)), x, y, width, height, 4, 	BlackPixel(display, DefaultScreen(display)), WhitePixel(display, DefaultScreen(display)));
	XMapWindow(display, win);
	gc = XCreateGC(display, win, valuemask, &values);
	XSync(display, False);

	XSetForeground(display, gc, WhitePixel(display, DefaultScreen(display)));
	XSetBackground(display, gc, BlackPixel(display, DefaultScreen(display)));

	XAllocNamedColor(display, XDefaultColormap(display, DefaultScreen(display)),"black", &cor, &cor);

	XSetForeground(display, gc, cor.pixel);


	//Desenhando os pontos
	a = iP1->x;
	b = iP1->y;
	XDrawPoint(display, win, gc, a, b);

	a = iP2->x;
	b = iP2->y;
	XDrawPoint(display, win, gc, a, b);

	a = iP1->x;
	b = iP1->y;
	XDrawPoint(display, win, gc, a, b);

	a = iP1->x;
	b = iP1->y;
	XDrawPoint(display, win, gc, a, b);

	a = iP1->x;
	b = iP1->y;
	XDrawPoint(display, win, gc, a, b);

	a = iP1->x;
	b = iP1->y;
	XDrawPoint(display, win, gc, a, b);

	a = iP1->x;
	b = iP1->y;
	XDrawPoint(display, win, gc, a, b);

	a = iP1->x;
	b = iP1->y;
	XDrawPoint(display, win, gc, a, b);

	//Desenhando as 12 retas
        reta(&win, &gc, display,iP1->x,iP2->x,iP1->y,iP2->y);

        reta(&win, &gc, display,iP2->x,iP4->x,iP2->y,iP4->y);

        reta(&win, &gc, display,iP4->x,iP3->x,iP4->y,iP3->y);

        reta(&win, &gc, display,iP3->x,iP1->x,iP3->y,iP1->y);

        reta(&win, &gc, display,iP1->x,iP5->x,iP1->y,iP5->y);

        reta(&win, &gc, display,iP2->x,iP6->x,iP2->y,iP6->y);

        reta(&win, &gc, display,iP3->x,iP7->x,iP3->y,iP7->y);

        reta(&win, &gc, display,iP4->x,iP8->x,iP4->y,iP8->y);

        reta(&win, &gc, display,iP5->x,iP6->x,iP5->y,iP6->y);

        reta(&win, &gc, display,iP6->x,iP8->x,iP6->y,iP8->y);

        reta(&win, &gc, display,iP8->x,iP7->x,iP8->y,iP7->y);

        reta(&win, &gc, display,iP7->x,iP5->x,iP7->y,iP5->y);


	XFlush(display);

	sleep(30);

	XFreeGC(display, gc);
	XCloseDisplay(display);

	return 0;
}