Programowanie w systemie UNIX/Cpp: Różnice pomiędzy wersjami

Z Wikibooks, biblioteki wolnych podręczników.
Usunięta treść Dodana treść
→‎OpenGl: nowy kod
Linia 26: Linia 26:
./a.out
./a.out


==OpenGl ==


<source lang = cpp>

// http://stackoverflow.com/questions/8000921/how-to-get-color-from-the-pixel-opengl
// g++ r.cpp -lGL -lGLU -lglut -Wall
// ./a.out

#include <GL/glut.h>
#include <iostream>

using namespace std;

void display()
{
glClear(GL_COLOR_BUFFER_BIT);

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-10, 10, -10, 10, -1, 1);

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

glPushMatrix();
glScalef(5,5,5);
glBegin(GL_TRIANGLES);
glColor3ub(255,0,0);
glVertex2f(-1,-1);
glColor3ub(0,255,0);
glVertex2f(1,-1);
glColor3ub(0,0,255);
glVertex2f(1,1);
glEnd();
glPopMatrix();

glutSwapBuffers();
}

void motion(int x, int y)
{
y = glutGet( GLUT_WINDOW_HEIGHT ) - y;

unsigned char pixel[4];
glReadPixels(x, y, 1, 1, GL_RGB, GL_UNSIGNED_BYTE, pixel);
cout << "R: " << (int)pixel[0] << endl;
cout << "G: " << (int)pixel[1] << endl;
cout << "B: " << (int)pixel[2] << endl;
cout << endl;
}

int main(int argc, char **argv)
{
glutInitWindowSize(640,480);
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);
glutCreateWindow("glReadPixels()");

glutDisplayFunc(display);
glutPassiveMotionFunc(motion);
glutMainLoop();
return 0;
}

</source>

Wersja z 21:21, 27 paź 2014

Przykłady

Przykładowe program w C++ :


Hello world

#include <iostream> 

int main () {

std::cout << "Hello, world!\n";

return 0;

}

Zapisujemy jako hello.cpp

Kompilujemy :

g++ -Wall hello.cpp

i uruchomiamy :

./a.out