Using Namespace: #Include #Include #Include #Include
Using Namespace: #Include #Include #Include #Include
h>
#include <iostream>
#include <GL/glut.h>
#include <math.h>
using namespace std;
void display();
}
float xi = x1; float yi = y1;
int c = c1;
if (c == 0) {
c = c2;
xi = x2;
yi = y2;
}
float x, y;
if ((c & 8) > 0) {
y = alto - 100;
x = xi + 1.0 / m * ((alto - 100) - yi);
}
else
if ((c & 4) > 0) {
y = 100;
x = xi + 1.0 / m * ((100) - yi);
}
else
if ((c & 2) > 0) {
x = ancho - 100;
y = yi + m * ((ancho - 100) - xi);
}
else
if ((c & 1) > 0) {
x = 100;
y = yi + m * ((100) - xi);
}
if (c == c1) {
xini = x;
yini = y;
c1 = Intera(xini, yini);
}
if (c == c2) {
xfin = x;
yfin = y;
c2 = Intera(xfin, yfin);
}
}
display();
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
pintaLinea(100, ancho - 100, 100, 100);
pintaLinea(100, 100, 100, alto - 100);
pintaLinea(ancho - 100, ancho - 100, 100, alto - 100);
pintaLinea(100, ancho - 100, alto - 100, alto - 100);
glFlush();
if (click == false) {
pintaLinea(xini, xfin, yini, yfin);
}
glFlush();
}
void raton(int btn, int state, int x, int y) {// parametros de botón, estado,
coordenadas
if (click == false) {
if (btn == GLUT_LEFT_BUTTON && state == GLUT_DOWN) {
xini = x;
yini = y;
click = true;
glutPostRedisplay();
}
}
else {
if (click == true) {
if (btn == GLUT_LEFT_BUTTON && state == GLUT_DOWN) {
xfin = x;
yfin = y;
click = false;
glutPostRedisplay();
}
}
}
if (btn == GLUT_RIGHT_BUTTON && state == GLUT_DOWN) {
Recorta(xini, yini, xfin, yfin);
}
glFlush();
}
void menu() {
system("cls");
cout << "Bienvenido a el programa para recortar un poligono" << endl;
cout << "El funcionamiento es simple.." << endl;
cout << "Con el click izquierdo tomas dos clicks: inicial y final." << endl;
cout << "Se traza una linea entre los dos clicks" << endl;
cout << "y por ultimo, con click derecho se corta lo que quede por fuera del
area delimitada" << endl;
display();
}