Main Search
Forum  Strona Główna
 
 
FAQ Members Groups Profile Private Messages

i znow gramy w kuli

 
Napisz nowy temat   Odpowiedz do tematu    Forum Strona Główna -> Geometria i grafika komp.
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
zirina
Gość






PostWysłany: Czw 11:27, 23 Lis 2006    Temat postu: i znow gramy w kuli

jak tam Wasz szanowni koledzy i kolezko programik na grafike... moze solidarnie zachorujemy na amnezje... tak na marginesie komu jeszcze dziala cpp po doinstalowaniu tej biblioteki...
Powrót do góry
Grzesiek




Dołączył: 09 Cze 2006
Posty: 49
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Czw 16:48, 23 Lis 2006    Temat postu: re

o ile dobrze wszystko zrozumialem to to ma wygladac tak [link widoczny dla zalogowanych]
chyba Wink

mi dziala Twisted Evil

jak bys mogla to sie zarejestruj


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Gość







PostWysłany: Pią 10:00, 24 Lis 2006    Temat postu:

calkiem fajne... Smile
Powrót do góry
zirina




Dołączył: 24 Lis 2006
Posty: 8
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Pią 10:02, 24 Lis 2006    Temat postu:

Anonymous napisał:
calkiem fajne... Smile


napisalam ja...


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Jajo
Administrator



Dołączył: 08 Cze 2006
Posty: 30
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Pią 20:46, 24 Lis 2006    Temat postu: Re: re

Grzesiek napisał:
o ile dobrze wszystko zrozumialem....

Blue_Light_Colorz_PDT_10 no no to Ci się udało .... Blue_Light_Colorz_PDT_04


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Grzesiek.
Gość






PostWysłany: Sob 21:31, 25 Lis 2006    Temat postu: re

czepiasz sie Blue_Light_Colorz_PDT_01
Powrót do góry
Jajo
Administrator



Dołączył: 08 Cze 2006
Posty: 30
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Sob 23:40, 25 Lis 2006    Temat postu:

lekko okrojony i lekko pozmieniany Blue_Light_Colorz_PDT_07 kod mojej cząsteczki .... pewnie komuś się przyda Very Happy

Cytat:

//----------------------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <gl\gl.h>
#include <gl\glut.h>
//Wymiary okna
int screen_width=800;
int screen_height=600;



void rozmiar (int width, int height)
{
screen_width=width;
screen_height=height;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glViewport(0,0,screen_width,screen_height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(50.0,(GLfloat)screen_width/(GLfloat)screen_height,1.0f,100.0f);
glutPostRedisplay (); // Przerysowanie sceny

}

/**********************************************************
G-Ąwna metoda rysujŚca
*********************************************************/

void rysuj(void)
{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Kasowanie ekranu


glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

GLUquadricObj *qobj;
qobj = gluNewQuadric();

glEnable(GL_LIGHTING);
glEnable(GL_DEPTH_TEST);
GLfloat lightPos[4] = {100,20,30,5};
glLightfv(GL_LIGHT0,GL_POSITION,lightPos);
glEnable(GL_LIGHT0);
glEnable(GL_COLOR_MATERIAL);


glTranslatef(-0.3,-0.3,-5);
glColor3f(0.3,0.6,0.2);
glutSolidSphere(0.4,50,50);

glTranslatef(0.7,1.2,-1.5);
glColor3f(0.3,0.6,0.2);
glutSolidSphere(0.4,50,50);

glTranslatef(-0.15,0.0,0.0);
glColor3f(0.8,0.7,0.3);
glRotatef(40.0,1,-0.6,0.0);
gluCylinder(qobj, 0.05, 0.05, 2.3, 50, 50);

glTranslatef(0.2,0.0,0.0);
glColor3f(0.8,0.7,0.3);
gluCylinder(qobj, 0.05, 0.05, 2.3, 50, 50);

glTranslatef(0.0,0.0,0.0);
glColor3f(0.8,0.7,0.3);
glRotatef(-120.0,1,0,0);
gluCylinder(qobj, 0.05, 0.05, 1.5, 50, 50);

glTranslatef(-0.2,0.0,0.0);
glColor3f(0.8,0.7,0.3);
gluCylinder(qobj, 0.05, 0.05, 1.5, 50, 50);

glTranslatef(0.1,0.0,1.5);
glColor3f(1.0,1.0,0.7);
glutSolidSphere(0.3,50,50);

glTranslatef(0.1,-1.5,-2.5);
glColor3f(0.8,0.7,0.3);
glRotatef(100.0,1,0,0);
gluCylinder(qobj, 0.05, 0.05, 1.5, 50, 50);

glTranslatef(-0.2,0.0,0.0);
glColor3f(0.8,0.7,0.3);
gluCylinder(qobj, 0.05, 0.05, 1.5, 50, 50);

glTranslatef(-1.1,0.0,0.35);
glColor3f(0.8,0.7,0.3);
glRotatef(90.0,0,1,0);
gluCylinder(qobj, 0.05, 0.05, 2.5, 50, 50);

glTranslatef(0.25,0.0,0.0);
glColor3f(0.8,0.7,0.3);
gluCylinder(qobj, 0.05, 0.05, 2.5, 50, 50);

glTranslatef(-0.125,0.0,-0.2);
glColor3f(1.0,1.0,0.7);
glutSolidSphere(0.3,50,50);

glTranslatef(0.0,0.0,2.9);
glColor3f(1.0,1.0,0.7);
glutSolidSphere(0.3,50,50);

glTranslatef(-1.4,0.0,-1.52);
glColor3f(1.0,1.0,0.7);
glutSolidSphere(0.3,50,50);


/*****************************************************/
glFlush(); // rysowanie w buforze
glutSwapBuffers(); // Wys-anie na ekran
}




int main(int argc, char **argv)
{
// INIT - wszystkie funkcje obs-ugi okna i przetwzrzania zdarze˝ realizuje GLUT
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(screen_width,screen_height);
glutInitWindowPosition(0,0);
glutCreateWindow("cząsteczka");
glutDisplayFunc(rysuj);// def. funkcji rysujŚcej
glutIdleFunc(rysuj);// def. funkcji rysujŚcej w czasie wolnym procesoora (w efekcie: ciŚgle wykonywanej)
glutReshapeFunc (rozmiar);// def. obs-ugi zdarzenia resize (GLUT)

// ustawienie renderowania
glEnable(GL_DEPTH_TEST);
glutMainLoop();// start obs-ugi komunikatĄw
return(0);
}
//-----------------------------------------no to tyle Blue_Light_Colorz_PDT_11


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
szymciu
Gość






PostWysłany: Nie 8:32, 26 Lis 2006    Temat postu:

//a oto i moja czasteczka, powodzenia Wink

Cytat:

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <gl\gl.h>
#include <gl\glut.h>
//Wymiary okna
int screen_width=800;
int screen_height=600;
float rotation_x;


void rozmiar (int width, int height)
{
screen_width=width;
screen_height=height;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glViewport(0,0,screen_width,screen_height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(50.0,(GLfloat)screen_width/(GLfloat)screen_height,1.0f,100.0f);
glutPostRedisplay (); // Przerysowanie sceny

}

/**********************************************************
G-Ąwna metoda rysujŚca
*********************************************************/

void rysuj(void)
{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Kasowanie ekranu


glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

GLUquadricObj *qobj;
qobj = gluNewQuadric();

glEnable(GL_LIGHTING);
glEnable(GL_DEPTH_TEST);
GLfloat lightPos[4] = {100,20,30,5};
glLightfv(GL_LIGHT0,GL_POSITION,lightPos);
glEnable(GL_LIGHT0);
glEnable(GL_COLOR_MATERIAL);


glTranslatef(-3,0,-5);

glRotatef(rotation_x, -1,0,1);
rotation_x +=0.3;
if (rotation_x > 359) rotation_x =0;

glRotatef(50,5,-17,-5);


glTranslatef(-0.3,-0.3,-5);
glColor3f(0.3,0.6,0.2);
glutSolidSphere(0.4,50,50);

glTranslatef(0.7,1.2,-1.5);
glColor3f(0.3,0.6,0.2);
glutSolidSphere(0.4,50,50);

glTranslatef(-0.15,0.0,0.0);
glColor3f(0.8,0.7,0.3);
glRotatef(40.0,1,-0.6,0.0);
gluCylinder(qobj, 0.05, 0.05, 2.3, 50, 50);

glTranslatef(0.2,0.0,0.0);
glColor3f(0.8,0.7,0.3);
gluCylinder(qobj, 0.05, 0.05, 2.3, 50, 50);

glTranslatef(0.0,0.0,0.0);
glColor3f(0.8,0.7,0.3);
glRotatef(-120.0,1,0,0);
gluCylinder(qobj, 0.05, 0.05, 1.5, 50, 50);

glTranslatef(-0.2,0.0,0.0);
glColor3f(0.8,0.7,0.3);
gluCylinder(qobj, 0.05, 0.05, 1.5, 50, 50);

glTranslatef(0.1,0.0,1.5);
glColor3f(1.0,1.0,0.7);
glutSolidSphere(0.3,50,50);

glTranslatef(0.1,-1.5,-2.5);
glColor3f(0.8,0.7,0.3);
glRotatef(100.0,1,0,0);
gluCylinder(qobj, 0.05, 0.05, 1.5, 50, 50);

glTranslatef(-0.2,0.0,0.0);
glColor3f(0.8,0.7,0.3);
gluCylinder(qobj, 0.05, 0.05, 1.5, 50, 50);

glTranslatef(-1.1,0.0,0.35);
glColor3f(0.8,0.7,0.3);
glRotatef(90.0,0,1,0);
gluCylinder(qobj, 0.05, 0.05, 2.5, 50, 50);

glTranslatef(0.25,0.0,0.0);
glColor3f(0.8,0.7,0.3);
gluCylinder(qobj, 0.05, 0.05, 2.5, 50, 50);

glTranslatef(-0.125,0.0,-0.2);
glColor3f(1.0,1.0,0.7);
glutSolidSphere(0.3,50,50);

glTranslatef(0.0,0.0,2.9);
glColor3f(1.0,1.0,0.7);
glutSolidSphere(0.3,50,50);

glTranslatef(-1.4,0.0,-1.52);
glColor3f(1.0,1.0,0.7);
glutSolidSphere(0.3,50,50);


/*****************************************************/
glFlush(); // rysowanie w buforze
glutSwapBuffers(); // Wys-anie na ekran
}




int main(int argc, char **argv)
{
// INIT - wszystkie funkcje obs-ugi okna i przetwzrzania zdarze˝ realizuje GLUT
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(screen_width,screen_height);
glutInitWindowPosition(0,0);
glutCreateWindow("cząsteczka");
glutDisplayFunc(rysuj);// def. funkcji rysujŚcej
glutIdleFunc(rysuj);// def. funkcji rysujŚcej w czasie wolnym procesoora (w efekcie: ciŚgle wykonywanej)
glutReshapeFunc (rozmiar);// def. obs-ugi zdarzenia resize (GLUT)

// ustawienie renderowania
glEnable(GL_DEPTH_TEST);
glutMainLoop();// start obs-ugi komunikatĄw
return(0);
}
Powrót do góry
zirina




Dołączył: 24 Lis 2006
Posty: 8
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Wto 13:07, 28 Lis 2006    Temat postu:

a to moj programik i taka prosba jak mam zrobic te nozki? moze ktos mi to dopisac... te wasze sa ciekawe ale chce sama zrobic... niech ktos mi wrzuci tam te nozki posze... patrzac na wasze to i tak nie wiem gdzie ma ma to byc
Razz

Cytat:

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <gl\gl.h>
#include <gl\glut.h>

//Wymiary okna
int screen_width=640;
int screen_height=480;

void rozmiar (int width, int height)
{
screen_width=width;
screen_height=height;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glViewport(0,0,screen_width,screen_height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(65.0f,(GLfloat)screen_width/(GLfloat)screen_height,1.0f,10000.0f);
//glutPostRedisplay (); // Przerysowanie sceny
}


/**********************************************************
Główna metoda rysująca
*********************************************************/

void rysuj(void)
{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Kasowanie ekranu
glPolygonMode (GL_FRONT_AND_BACK, GL_FILL);

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();


GLfloat matSpecular1[4] = {0.5,0.5,0.5,1};
GLfloat matAmbient1[4] = {0.6,0.6,0.6,1};
GLfloat matDiffuse1[4] = {0.6,0.6,0.6,1};
GLfloat matEmission1[4] = {0,0,0,1};
GLfloat matShininess1 = 100;

GLfloat matKolorZielony[4] = {0.2,1.0,0.2,1};
GLfloat matKolorCzerwony[4] = {1,0.2,0.2,1};
GLfloat matKolorNiebieski[4] = {0.2,0.2,1};
GLfloat matKolorRoz[4] = {1,0.2,1};

glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
// wybór trybu koloryzacji materiałów, definiuje to, które właściwości materiału mają być korygowane przez wybór koloru
//GL_EMISSION, GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_AMBIENT_AND_DIFFUSE

glEnable(GL_COLOR_MATERIAL); // teraz zmiana koloru wybranych cech materiału następuje poprzez zwykly glColor*()

glMaterialfv(GL_FRONT, GL_SPECULAR,matSpecular1);
glMaterialfv(GL_FRONT, GL_AMBIENT,matAmbient1);
glMaterialfv(GL_FRONT, GL_DIFFUSE,matDiffuse1);
glMaterialfv(GL_FRONT, GL_EMISSION,matEmission1);
glMateriali(GL_FRONT,GL_SHININESS,matShininess1);


GLUquadricObj *obiekt;
obiekt = gluNewQuadric();


glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

glPopMatrix();
glPushMatrix();

glColor3fv(matKolorZielony);
glTranslatef(4,0,-20);
glutSolidSphere(3,50,50);

glRotatef(90,1,0,0);
glTranslatef(0,0,-8 );
gluCylinder(obiekt, 0.4,0.4,15,50,10);


glPopMatrix();
glPushMatrix();
glTranslatef(-4,0,-20);
glutSolidSphere(3,50,50);

glPopMatrix();
glPushMatrix();

glColor3fv(matKolorCzerwony);
glTranslatef(-4,5,-25);
glutSolidSphere(2,50,50);
glPopMatrix();
glPushMatrix();
glTranslatef(-4,-5,-15);
glutSolidSphere(2,50,50);
glPopMatrix();
glPushMatrix();
glTranslatef(4,-7,-20);
glutSolidSphere(2,50,50);
glPopMatrix();
glPushMatrix();
glTranslatef(4,7,-20);
glutSolidSphere(2,50,50);

glPopMatrix();
glPushMatrix();
glColor3fv(matKolorNiebieski);
glTranslatef(-11,0,-20);
glutSolidSphere(2,50,50);
glPopMatrix();
glPushMatrix();
glTranslatef(11,0,-20);
glutSolidSphere(2,50,50);

glRotatef(90,0,1,0);
glTranslatef(0,0,-20);
gluCylinder(obiekt, 0.4,0.4,20,50,10);



glDisable(GL_COLOR_MATERIAL);

/******************************************************/

glFlush(); // rysowanie w buforze
glutSwapBuffers(); // Wysłanie na ekran
}

int main(int argc, char **argv)
{
// INIT - wszystkie funkcje obsługi okna i przetwzrzania zdarzeń realizuje GLUT
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(screen_width,screen_height);
glutInitWindowPosition(0,0);
glutCreateWindow("Światła");

glutDisplayFunc(rysuj); // def. funkcji rysującej
//glutIdleFunc(rysuj); // def. funkcji rysującej w czasie wolnym procesoora (w efekcie: ciągle wykonywanej)
glutReshapeFunc (rozmiar); // def. obsługi zdarzenia resize (GLUT)

glEnable(GL_DEPTH_TEST);


/******* Obsługa świateł *********/
glEnable(GL_LIGHTING);

GLfloat ambientLight0[4] = {0.0,0.0,0.0,1};;
GLfloat diffuseLight0[4] = {1,1,1,1};;
GLfloat specular0[4] = {0.4,1.4,0.4,1};;
GLfloat lightPos0[4] = {-20,20,30,1};;

glLightfv(GL_LIGHT0,GL_AMBIENT,ambientLight0);
glLightfv(GL_LIGHT0,GL_DIFFUSE,diffuseLight0);
glLightfv(GL_LIGHT0,GL_SPECULAR,specular0);
glLightfv(GL_LIGHT0,GL_POSITION,lightPos0);
glEnable(GL_LIGHT0);



/******************************************************/




glutMainLoop(); // start obsługi komunikatów
return(0);
}


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
zirina




Dołączył: 24 Lis 2006
Posty: 8
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Wto 13:10, 28 Lis 2006    Temat postu:

a tu to drugie zadanie... wyrzucilam kostke i macie ostroslup... podstawy nie ma ale tego i tak nie widac... to main a reszta to wiecie jak (tekstura.c tekstura.h i 102.bmp dolaczyc do projektu) to dla tych ktorych nie bylo:)

kilka linijek mozna wyrzucic:P

Cytat:

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <gl\gl.h>
#include <gl\glut.h>
#include "tekstura.h"

//Wymiary okna
int screen_width=640;
int screen_height=480;

//parametry swiatla
GLfloat ambientLight0[4] = {0.0,0.0,0.0,1};
GLfloat diffuseLight0[4] = {1,1,1,1};
GLfloat specular0[4] = {0.4,1.4,0.4,1};
GLfloat lightPos0[4] = {-3,5,-5,1};

//parametry materialow
GLfloat matSpecular1[4] = {0.5,0.5,0.5,1};
GLfloat matAmbient1[4] = {0.6,0.6,0.6,1};
GLfloat matDiffuse1[4] = {0.6,0.6,0.6,1};
GLfloat matEmission1[4] = {0,0,0,1};
GLfloat matEmission2[4] = {1,1,0,1};
GLfloat matShininess1 = 10;

GLfloat matKolorZielony[4] = {0.2,1.0,0.2,1};
GLfloat matKolorCzerwony[4] = {1,0.2,0.2,1};
GLfloat matKolorNiebieski[4] = {0.2,0.2,0.5,0.3};
GLfloat matKolorBrazowy[4] = {0.5,0.3,0,1};
GLfloat matKolorZolty[4] = {1,1,0,1};

// identyfikatory tekstur

int tex_id1;
int tex_id2;
int tex_id3;

// Wywoływana w momencie zmiany rozmiaru okna
void rozmiar (int width, int height)
{
screen_width=width;
screen_height=height;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glViewport(0,0,screen_width,screen_height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f,(GLfloat)screen_width/(GLfloat)screen_height,1.0f,10000.0f);
glutPostRedisplay (); // Przerysowanie sceny
}

///////////////////////////////////////////////////////////
// Rysowanie siatki podłoża jako serii pasków trójkątów.
// Modele cieniowania i kolorów ustawione są tak, że na ekranie
// widoczna jest czarno-biała szachownica.
void DrawGround(void)
{
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, tex_id3);
glMatrixMode(GL_TEXTURE); // dodatkowo - modyfikacja tekstury bezposrednio przez masierz przekształcenia
glLoadIdentity();
glRotatef(45,1,0,0);
glScalef(.5,.5,.5);
glMatrixMode(GL_MODELVIEW);
glBegin(GL_QUADS); //czworokąty
glTexCoord2f(0, 20); glVertex3f(-20, 0, -20);
glTexCoord2f(20, 20); glVertex3f(-20, 0, 20);
glTexCoord2f(20, 0); glVertex3f(20, 0,20);
glTexCoord2f(0, 0); glVertex3f(20, 0, -20);
glEnd();

glDisable(GL_TEXTURE_2D);

glShadeModel(GL_SMOOTH);
}

/**********************************************************
Główna metoda rysująca
*********************************************************/

void rysuj(void)
{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Kasowanie ekranu
glPolygonMode (GL_FRONT_AND_BACK, GL_FILL);

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

/******* Materiały *********/

glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
// wybór trybu koloryzacji materiałów, definiuje to, które właściwości materiału mają być korygowane przez wybór koloru
//GL_EMISSION, GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_AMBIENT_AND_DIFFUSE

glEnable(GL_COLOR_MATERIAL); // teraz zmiana koloru wybranych cech materiału następuje poprzez zwykly glColor*()

glMaterialfv(GL_FRONT, GL_SPECULAR,matSpecular1);
glMaterialfv(GL_FRONT, GL_AMBIENT,matAmbient1);
glMaterialfv(GL_FRONT, GL_DIFFUSE,matDiffuse1);
glMaterialfv(GL_FRONT, GL_EMISSION,matEmission1);
glMateriali(GL_FRONT,GL_SHININESS,matShininess1);

//ustawienie ukladu
glTranslatef(-.2,.0,-10.0);
glRotatef(15,1,0,0);
glPushMatrix();

DrawGround();

glEnable(GL_TEXTURE_2D);

//ostrosłup
glMatrixMode(GL_TEXTURE); // dodatkowo - modyfikacja tekstury bezposrednio przez masierz przekształcenia
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
glBindTexture(GL_TEXTURE_2D, tex_id1);

// 1 trojkat
glPopMatrix();
glPushMatrix();
glTranslatef(-2,0,0);
glRotatef(0,0,0,0);
glScalef(1,1,1);
glBegin(GL_TRIANGLES);
glTexCoord2f(0, 0); glVertex3f(-2, 0, 0);
glTexCoord2f(2, 0); glVertex3f(0, 0, 2);
glTexCoord2f(1, 1); glVertex3f(0, 2, 0);

// 2 trojkat
glPopMatrix();
glPushMatrix();
glTranslatef(-2,0,0);
glRotatef(0,0,0,0);
glScalef(1,1,1);
glBegin(GL_TRIANGLES);
glTexCoord2f(0, 0); glVertex3f(0, 0, 2);
glTexCoord2f(2, 0); glVertex3f(2, 0, 0);
glTexCoord2f(1, 1); glVertex3f(0, 2, 0);

//3 trojkat
glPopMatrix();
glPushMatrix();
glTranslatef(-2,0,0);
glRotatef(0,0,0,0);
glScalef(1,1,1);
glBegin(GL_TRIANGLES);
glTexCoord2f(0, 0); glVertex3f(0, 0, -2);
glTexCoord2f(2, 0); glVertex3f(2, 0, 0);
glTexCoord2f(1, 1); glVertex3f(0, 2, 0);

//4 trojkat
glPopMatrix();
glPushMatrix();
glTranslatef(-2,0,0);
glRotatef(0,0,0,0);
glScalef(1,1,1);
glBegin(GL_TRIANGLES);
glTexCoord2f(0, 0); glVertex3f(-2, 0, 0);
glTexCoord2f(2, 0); glVertex3f(0, 0, -2);
glTexCoord2f(1, 1); glVertex3f(0, 2, 0);




glEnd();



//czajnik
glMatrixMode(GL_TEXTURE); // dodatkowo - modyfikacja tekstury bezposrednio przez masierz przekształcenia
glLoadIdentity();
glScalef(0.3,0.3,0.3);
glMatrixMode(GL_MODELVIEW);
glBindTexture(GL_TEXTURE_2D, tex_id2);
glColor3fv(matKolorZielony);
glPopMatrix();
glPushMatrix();
glTranslatef(2,1,0);
glRotatef(180,0,1,0);
glutSolidTeapot(1);
glDisable(GL_TEXTURE_2D);



//kubek przezroczysty
glEnable(GL_BLEND); //wlaczenie mieszania kolorow
glDepthMask(GL_FALSE); //zawieszenie rejestrowania obiektów w buforze głębokości
//ustawienie funkcji mieszącej kolory
glBlendFunc(GL_SRC_ALPHA,GL_DST_ALPHA);
//glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
//glBlendFunc(GL_SRC_ALPHA, GL_DST_ALPHA);
//glBlendFunc(GL_SRC_COLOR, GL_DST_COLOR);
//glBlendFunc(GL_ONE, GL_ONE);
// pierwszy parametr:GL_ZERO, GL_ONE, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA, GL_SRC_ALPHA_SATURATE.
// drugi parametr:GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA

glColor3fv(matKolorNiebieski);
glPopMatrix();
glPushMatrix();
glTranslatef(1,1,3);
glScalef(1,8,1);
glRotatef(90,1,0,0);
glutSolidTorus(0.1, 0.5 , 300, 300);
glDepthMask(GL_TRUE);
glDisable(GL_BLEND);


/******* Obsługa świateł *********/
glLoadIdentity();
//rysujemy zotla kulka w miejscu swiatla
glMaterialfv(GL_FRONT, GL_EMISSION,matEmission2);
glTranslatef(lightPos0[0],lightPos0[1]-2,lightPos0[2]-5);
glutSolidSphere(0.2,50,50);


glLightfv(GL_LIGHT0,GL_AMBIENT,ambientLight0);
glLightfv(GL_LIGHT0,GL_DIFFUSE,diffuseLight0);
glLightfv(GL_LIGHT0,GL_SPECULAR,specular0);
glLightfv(GL_LIGHT0,GL_POSITION,lightPos0);

/******************************************************/

glFlush(); // rysowanie w buforze
glutSwapBuffers(); // Wysłanie na ekran
}

int main(int argc, char **argv)
{
// INIT - wszystkie funkcje obsługi okna i przetwzrzania zdarzeń realizuje GLUT
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(screen_width,screen_height);
glutInitWindowPosition(0,0);
glutCreateWindow("Tekstury");

glutDisplayFunc(rysuj); // def. funkcji rysującej
//glutIdleFunc(rysuj); // def. funkcji rysującej w czasie wolnym procesoora (w efekcie: ciągle wykonywanej)
glutReshapeFunc (rozmiar); // def. obsługi zdarzenia resize (GLUT)

glEnable(GL_DEPTH_TEST);

glDisable(GL_COLOR_MATERIAL);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);

/*******************Teksury**************************/




// ładowanie obiektów - metoda WczytajTeksture() zgłasza teksture (glBindTexture() ) pod zwracanym numerem
tex_id1 = WczytajTeksture("102.bmp");
tex_id2 = WczytajTeksture("102.bmp");
tex_id3 = WczytajTeksture("102.bmp");
if (tex_id1 == -1 || tex_id2 == -1 )
{
MessageBox(NULL,"Nie znaleziono pliku z tekstur&brvbar;", "Problem",MB_OK | MB_ICONERROR);
exit (0);
}


/******************************************************/
glutMainLoop(); // start obsługi komunikatów
return(0);
}


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Grzesiek




Dołączył: 09 Cze 2006
Posty: 49
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Śro 11:55, 29 Lis 2006    Temat postu:

podstawe ostroslupa bedzie widac przy odpowiednim ustawieniu glRotatef, wiec warto ja dodac Wink

przy wrzucaniu kodu proponuje uzyc znacznikow [Qoute] (niestety nie wiem czemu ale [Code] nie dziala Evil or Very Mad ) wtedy forum bedzie bardziej przejrzyste np


Cytat:
void DrawGround(void)
{
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, tex_id3);
glMatrixMode(GL_TEXTURE); // dodatkowo - modyfikacja tekstury bezposrednio przez masierz przekształcenia
glLoadIdentity();
glRotatef(45,1,0,0);
glScalef(.5,.5,.5);
glMatrixMode(GL_MODELVIEW);
glBegin(GL_QUADS); //czworokąty
glTexCoord2f(0, 20); glVertex3f(-20, 0, -20);
glTexCoord2f(20, 20); glVertex3f(-20, 0, 20);
glTexCoord2f(20, 0); glVertex3f(20, 0,20);
glTexCoord2f(0, 0); glVertex3f(20, 0, -20);
glEnd();

glDisable(GL_TEXTURE_2D);

glShadeModel(GL_SMOOTH);
}


//pozwolilem sobie na edycje waszych postow Exclamation Cool


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Grzesiek




Dołączył: 09 Cze 2006
Posty: 49
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Śro 12:28, 29 Lis 2006    Temat postu:

@ zirina

w twoim kodzie dodalem 2 'nozki' , trzecia zrob sama Rolling Eyes


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Jajo
Administrator



Dołączył: 08 Cze 2006
Posty: 30
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Sob 1:20, 09 Gru 2006    Temat postu:

no a tak wygląda mój stożek, co do podstawy to jest "zawarta" między glBegin(GL_QUADS); a glEnd() ....... acha no i jw też można kilka zbędnych linijek wyrzucić Blue_Light_Colorz_PDT_08

Cytat:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <windows.h>
#include <gl\gl.h>
#include <gl\glut.h>
#include "tekstura.h"
GLdouble eyex = 0;
GLdouble eyey = 0;
GLdouble eyez = 0;
double eyew=0;
double eyes=0;
double eyea=0;
double eyed=0;
double eyep=0;
double eyem=0;
//Wymiary okna
int screen_width=640;
int screen_height=480;
int pozycjaMyszyX; // na ekranie
int pozycjaMyszyY;
// identyfikatory tekstur

int tex_id1;
int tex_id2;
int tex_id3;

double kameraX;
double kameraZ;
double kameraPredkosc;

double kameraKat;
double kameraPredkoscObrotu;
//parametry swiatla
GLfloat ambientLight0[4] = {0.0,0.0,0.0,1};
GLfloat diffuseLight0[4] = {1,1,1,1};
GLfloat specular0[4] = {0.4,1.4,0.4,1};
GLfloat lightPos0[4] = {-3,6,0,8};

//parametry materialow
GLfloat matSpecular1[4] = {0.5,0.5,0.5,1};
GLfloat matAmbient1[4] = {0.6,0.6,0.6,1};
GLfloat matDiffuse1[4] = {0.6,0.6,0.6,1};
GLfloat matEmission1[4] = {0,0,0,1};
GLfloat matEmission2[4] = {1,1,0,1};
GLfloat matShininess1 = 10;

GLfloat matKolorZielony[4] = {0.2,1.0,0.2,1};
GLfloat matKolorCzerwony[4] = {1,0.2,0.2,1};
GLfloat matKolorNiebieski[4] = {0.2,0.2,0.5,0.3};
GLfloat matKolorBrazowy[4] = {0.5,0.3,0,1};
GLfloat matKolorZolty[4] = {1,1,0,1};

void resetKamery(){

kameraX = 0;
kameraZ = 0;
kameraPredkosc = 0;
kameraKat = 0;
kameraPredkoscObrotu = 0;

}

/*********************************************************/

void mysz (int button, int state, int x, int y)
{
switch (state)
{
case GLUT_UP:
kameraPredkosc = 0;
kameraPredkoscObrotu = 0;
break;
case GLUT_DOWN:
pozycjaMyszyX = x;
pozycjaMyszyY = y;
break;

}
}

void mysz_ruch (int x, int y)
{
kameraPredkoscObrotu = -(pozycjaMyszyX - x) * 0.0001;
kameraPredkosc = (pozycjaMyszyY - y) * 0.01;
}

/*********************************************************/
// Wywoływana w momencie zmiany rozmiaru okna
void rozmiar (int width, int height)
{
screen_width=width;
screen_height=height;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glViewport(0,0,screen_width,screen_height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f,(GLfloat)screen_width/(GLfloat)screen_height,1.0f,150.0f);
glutPostRedisplay (); // Przerysowanie sceny
}

///////////////////////////////////////////////////////////
// Rysowanie siatki podłoża jako serii pasków trójkštów.
// Modele cieniowania i kolorów ustawione sš tak, że na ekranie
// widoczna jest czarno-biała szachownica.
void DrawGround(void)
{
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, tex_id3);
glMatrixMode(GL_TEXTURE); // dodatkowo - modyfikacja tekstury bezposrednio przez masierz przekształcenia
glLoadIdentity();
glRotatef(45,1,0,0);
glScalef(.5,.5,.5);
glMatrixMode(GL_MODELVIEW);
glBegin(GL_QUADS); //czworokąty
glTexCoord2f(0, 20); glVertex3f(-20, 0, -20);
glTexCoord2f(20, 20); glVertex3f(-20, 0, 20);
glTexCoord2f(20, 0); glVertex3f(20, 0,20);
glTexCoord2f(0, 0); glVertex3f(20, 0, -20);
glEnd();

glDisable(GL_TEXTURE_2D);

glShadeModel(GL_SMOOTH);
}

/**********************************************************
Główna metoda rysujšca
*********************************************************/

void rysuj(void)
{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Kasowanie ekranu
glPolygonMode (GL_FRONT_AND_BACK, GL_FILL);
glClearColor(0.2,0.3,1,1);
glMatrixMode(GL_MODELVIEW);
kameraKat+=kameraPredkoscObrotu;
kameraX+=kameraPredkosc*sin(kameraKat);
kameraZ-=kameraPredkosc*cos(kameraKat);
glLoadIdentity();
gluLookAt (kameraX,0,kameraZ,kameraX + 100*sin(kameraKat),0,kameraZ - 100*cos(kameraKat),0,1,0); // kamera

/******* Materiały *********/

glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
// wybór trybu koloryzacji materiałów, definiuje to, które wła?ciwo?ci materiału majš być korygowane przez wybór koloru
//GL_EMISSION, GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_AMBIENT_AND_DIFFUSE

glEnable(GL_COLOR_MATERIAL); // teraz zmiana koloru wybranych cech materiału następuje poprzez zwykly glColor*()

glMaterialfv(GL_FRONT, GL_SPECULAR,matSpecular1);
glMaterialfv(GL_FRONT, GL_AMBIENT,matAmbient1);
glMaterialfv(GL_FRONT, GL_DIFFUSE,matDiffuse1);
glMaterialfv(GL_FRONT, GL_EMISSION,matEmission1);
// glMateriali(GL_FRONT,GL_SHININESS,matShininess1);

//ustawienie ukladu
glTranslatef(-.2,-3,-10.0);
glPushMatrix();

DrawGround();
glEnable(GL_TEXTURE_2D);
//kostka
glMatrixMode(GL_TEXTURE); // dodatkowo - modyfikacja tekstury bezposrednio przez masierz przekształcenia
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
glBindTexture(GL_TEXTURE_2D, tex_id1);


glTranslatef(-1+eyea-eyed,2.2+eyew-eyes,-2+eyep-eyem);
glRotatef(0+eyex,1,0,0);
glRotatef(-20+eyey,0,1,0);
glRotatef(0+eyez,0,0,1);

glBegin(GL_QUADS); //kwadraty
glTexCoord2f(0, Cool; glVertex3f(-1, 0, -1);
glTexCoord2f(8, Cool; glVertex3f(-1, 0, 1);
glTexCoord2f(8, 0); glVertex3f(1, 0, 1);
glTexCoord2f(0, 0); glVertex3f(1, 0, -1);
glEnd();

glBegin(GL_TRIANGLES); //trójkąty
glPopMatrix();
glTexCoord2f(0, Cool; glVertex3f(-1, 0, 1);
glTexCoord2f(8, Cool; glVertex3f(1, 0, 1);
glTexCoord2f(8, 0); glVertex3f(0, 2, 0);

glPopMatrix();
glTexCoord2f(0, Cool; glVertex3f(-1, 0,-1);
glTexCoord2f(8, Cool; glVertex3f(-1, 0, 1);
glTexCoord2f(8, 0); glVertex3f(0, 2, 0);

glPopMatrix();
glTexCoord2f(0, Cool; glVertex3f(1, 0,-1);
glTexCoord2f(8, Cool; glVertex3f(1, 0, 1);
glTexCoord2f(8, 0); glVertex3f(0, 2, 0);

glPopMatrix();
glTexCoord2f(0, Cool; glVertex3f(1, 0, -1);
glTexCoord2f(8, Cool; glVertex3f(-1, 0, -1);
glTexCoord2f(8, 0); glVertex3f(0, 2, 0);
glPushMatrix();
glEnd();

//czajnik
glMatrixMode(GL_TEXTURE);
glLoadIdentity();
glScalef(0.3,0.3,0.3);
glMatrixMode(GL_MODELVIEW);
glBindTexture(GL_TEXTURE_2D, tex_id2);
glColor3fv(matKolorZielony);
glPopMatrix();
glPushMatrix();
glTranslatef(2,1,0);
glRotatef(180,0,1,0);
glutSolidTeapot(1);
glDisable(GL_TEXTURE_2D);

//kubek przezroczysty
glEnable(GL_BLEND); //wlaczenie mieszania kolorow
glDepthMask(GL_FALSE); //zawieszenie rejestrowania obiektów w buforze głęboko?ci

//ustawienie funkcji mieszšcej kolory
glBlendFunc(GL_SRC_ALPHA,GL_DST_ALPHA);
//glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
//glBlendFunc(GL_SRC_ALPHA, GL_DST_ALPHA);
//glBlendFunc(GL_SRC_COLOR, GL_DST_COLOR);
//glBlendFunc(GL_ONE, GL_ONE);
// pierwszy parametr:GL_ZERO, GL_ONE, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA, GL_SRC_ALPHA_SATURATE.
// drugi parametr:GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA

glColor3fv(matKolorNiebieski);
glPopMatrix();
glPushMatrix();
glTranslatef(1,1,3);
glScalef(1,8,1);
glRotatef(90,1,0,0);
glutSolidTorus(0.1, 0.5 , 300, 300);
glDepthMask(GL_TRUE);
glDisable(GL_BLEND);


/******* Obsługa ?wiateł *********/
glPopMatrix();
glPushMatrix();
//rysujemy zotla kulka w miejscu swiatla
glMaterialfv(GL_FRONT, GL_EMISSION,matEmission2);
glTranslatef(lightPos0[0],lightPos0[1]-2,lightPos0[2]-5);
glutSolidSphere(0.2,50,50);


glLightfv(GL_LIGHT0,GL_AMBIENT,ambientLight0);
glLightfv(GL_LIGHT0,GL_DIFFUSE,diffuseLight0);
glLightfv(GL_LIGHT0,GL_SPECULAR,specular0);
glLightfv(GL_LIGHT0,GL_POSITION,lightPos0);

/******************************************************/
glPopMatrix();
glFlush(); // rysowanie w buforze
glutSwapBuffers(); // Wysłanie na ekran
}



// Reakcje na klawisze strzałek
void klawisz (GLubyte key, int x, int y)
{
switch (key) {

case 27: /* Esc - koniec */
exit(1);
break;
case ' ':
glutFullScreen();
break;
case 'x':
eyex += 5;
break;
case 'y':
eyey += 5;
break;
case 'z':
eyez += 5;
break;
case 'w':
eyew +=0.1;
break;
case 's':
eyes +=0.1;
break;
case 'd':
eyea +=0.1;
break;
case 'a':
eyed +=0.1;
break;
case '+':
eyep +=0.1;
break;
case '-':
eyem +=0.1;
break;

}


}
void obrot(GLdouble x)
{
glRotatef(x,0,0,0);
}
int main(int argc, char **argv)
{
// INIT - wszystkie funkcje obsługi okna i przetwzrzania zdarzeń realizuje GLUT
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(screen_width,screen_height);
glutInitWindowPosition(0,0);
glutCreateWindow("Piramidka");

glutDisplayFunc(rysuj); // def. funkcji rysujšcej
glutIdleFunc(rysuj); // def. funkcji rysujšcej w czasie wolnym procesoora (w efekcie: cišgle wykonywanej)
glutReshapeFunc (rozmiar); // def. obsługi zdarzenia resize (GLUT)


glEnable(GL_DEPTH_TEST);
glDisable(GL_COLOR_MATERIAL);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glutKeyboardFunc (klawisz); // def. obsługi klawiatury
glutMouseFunc(mysz); // def. obsługi zdarzenia przycisku myszy (GLUT)
glutMotionFunc(mysz_ruch); // def. obsługi zdarzenia ruchu myszy (GLUT)
/*******************Teksury**************************/




// ładowanie obiektów - metoda WczytajTeksture() zgłasza teksture (glBindTexture() ) pod zwracanym numerem
tex_id1 = WczytajTeksture("kwiatek.bmp");
tex_id2 = WczytajTeksture("cos.bmp");
tex_id3 = WczytajTeksture("curtain.bmp");
if (tex_id1 == -1 || tex_id2 == -1 )
{
MessageBox(NULL,"Nie znaleziono pliku z tekstur¦", "Problem",MB_OK | MB_ICONERROR);
exit (0);
}


/******************************************************/

resetKamery();
glutMainLoop(); // start obsługi komunikatów
return(0);
}



Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Strona Główna -> Geometria i grafika komp. Wszystkie czasy w strefie CET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Back to Top              
fora.pl - załóż własne forum dyskusyjne za darmo
Jenova Template © digital-delusion.com
Powered by phpBB © 2001, 2002 phpBB Group

Regulamin