Cita:
#include<GL/glut.h>
#include <iostream>
using namespace std;
void display(){
glClearColor(0.0, 0.5, 0.5, 0.0); //Cor no fondo da janela
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 0.0, 0.0);//Cor atual
float aux;
int m, n, i, j, z, k;
float z1, z2;
{cout << "Digite la coordenada constante de la reta horizontal P"<<endl;
cin>> z1;}
{cout << "Digite la coordenada constante de la reta horizontal Q"<<endl;
cin>> z2;}
const float y1=z1;
const float y2=z2;
float *p;
float *q;
cout << "Digite el número de puntos en la reta horizontal P"<<endl;
cin>> m;
cout << "Digite el número de puntos en la reta horizontal Q"<<endl;
cin>> n;
p=new float [m];
q=new float [n];
cout << "Digite las " << m << " absisas de los puntos en la recta P"<<endl;
for (int i=0; i<m; i++) {
cin>>p[i];}
cout << "Digite las " << n << " absisas de los puntos en la recta Q"<<endl;
for (int i=0; i<n; i++) {
cin>>q[i];}
for (int j=0; j<m; j++) {
for (int i=0; i<m-1-j; i++) {
if (p[i]>p[i+1]) {
aux=p[i];
p[i]=p[i+1];
p[i+1]=aux;
}}}
for (j=0; j<n; j++) {
for (i=0; i<n-1-j; i++) {
if (q[i]>q[i+1]) {
aux=q[i];
q[i]=q[i+1];
q[i+1]=aux;
}}}
for (int k=0; k<n-1; k+=1){
float v[3]={p[0],q[k],q[k+1]};
glBegin(GL_LINE_STRIP);
glVertex2f(p[0], y1);
glVertex2f(v[1], y2);
glVertex2f(v[2], y2);
glEnd();}
for (int k=0; k<m-1; k+=1){
float w[3]={q[3],p[k],p[k+1]};
glBegin(GL_LINE_STRIP);
glVertex2f(q[3], y2);
glVertex2f(w[1], y1);
glVertex2f(w[2], y1);
glEnd();}
glBegin(GL_LINES);
glVertex2f(p[m-1], y1);
glVertex2f(q[n-1], y2);
glEnd();
glFlush();
glutSwapBuffers();
}
int main (int argc, char ** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA);
glutInitWindowSize(1000, 1000);
glutInitWindowPosition(0, 0);
glutCreateWindow("Ponto");
gluOrtho2D(-5,5,-5,5);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
#include <iostream>
using namespace std;
void display(){
glClearColor(0.0, 0.5, 0.5, 0.0); //Cor no fondo da janela
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 0.0, 0.0);//Cor atual
float aux;
int m, n, i, j, z, k;
float z1, z2;
{cout << "Digite la coordenada constante de la reta horizontal P"<<endl;
cin>> z1;}
{cout << "Digite la coordenada constante de la reta horizontal Q"<<endl;
cin>> z2;}
const float y1=z1;
const float y2=z2;
float *p;
float *q;
cout << "Digite el número de puntos en la reta horizontal P"<<endl;
cin>> m;
cout << "Digite el número de puntos en la reta horizontal Q"<<endl;
cin>> n;
p=new float [m];
q=new float [n];
cout << "Digite las " << m << " absisas de los puntos en la recta P"<<endl;
for (int i=0; i<m; i++) {
cin>>p[i];}
cout << "Digite las " << n << " absisas de los puntos en la recta Q"<<endl;
for (int i=0; i<n; i++) {
cin>>q[i];}
for (int j=0; j<m; j++) {
for (int i=0; i<m-1-j; i++) {
if (p[i]>p[i+1]) {
aux=p[i];
p[i]=p[i+1];
p[i+1]=aux;
}}}
for (j=0; j<n; j++) {
for (i=0; i<n-1-j; i++) {
if (q[i]>q[i+1]) {
aux=q[i];
q[i]=q[i+1];
q[i+1]=aux;
}}}
for (int k=0; k<n-1; k+=1){
float v[3]={p[0],q[k],q[k+1]};
glBegin(GL_LINE_STRIP);
glVertex2f(p[0], y1);
glVertex2f(v[1], y2);
glVertex2f(v[2], y2);
glEnd();}
for (int k=0; k<m-1; k+=1){
float w[3]={q[3],p[k],p[k+1]};
glBegin(GL_LINE_STRIP);
glVertex2f(q[3], y2);
glVertex2f(w[1], y1);
glVertex2f(w[2], y1);
glEnd();}
glBegin(GL_LINES);
glVertex2f(p[m-1], y1);
glVertex2f(q[n-1], y2);
glEnd();
glFlush();
glutSwapBuffers();
}
int main (int argc, char ** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA);
glutInitWindowSize(1000, 1000);
glutInitWindowPosition(0, 0);
glutCreateWindow("Ponto");
gluOrtho2D(-5,5,-5,5);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}