Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<windows.h>
- #include <GL/glut.h>
- #include <GL/gl.h>
- #include <bits/stdc++.h>
- using namespace std;
- double x1,y11,x2,y2,delx,dely,delm,x,y,pk;
- void display(void)
- {
- glClear(GL_COLOR_BUFFER_BIT);
- glColor3f(1.0,0.0,0.0);
- // glBegin(GL_POLYGON);
- // glVertex2i(10,10);
- // glVertex2i(30,10);
- // glVertex2i(30,60);
- // glVertex2i(10,60);
- // glEnd();
- /*x = x1, y= y11;
- delx = x2-x1 ,dely = y2-y11;
- delm = dely/delx;
- if( abs( delm ) <= 1 ){
- while( x < x2 ){
- x++, y += delm;
- glBegin(GL_POINTS);
- glVertex2i(x,round(y));
- glEnd();
- }
- }
- else{
- while( y < y2 ){
- y++; x += ( 1/delm );
- glBegin(GL_POINTS);
- glVertex2i(round(x),y);
- glEnd();
- }
- }
- */
- x = x1, y= y11;
- delx = x2-x1 ,dely = y2-y11;
- delm = dely/delx;
- pk =( 2* dely) - delx;
- if( delm == 0.0000 ) {
- cout << delm << endl;
- while( x < x2 ){
- x++;
- glBegin(GL_POINTS);
- glVertex2i(x,y);
- glEnd();
- }
- }
- else if( delm < 1 ){
- while( x < x2 ){
- x++;
- if( pk > 0 ){
- pk +=( 2 * ( dely - delx) );
- y++;
- }
- else{
- pk += (dely*2);
- y++;
- }
- glBegin(GL_POINTS);
- glVertex2i(x,y);
- glEnd();
- }
- }
- else {
- while( y < y2 ){
- y++;
- glBegin(GL_POINTS);
- glVertex2i(x,y);
- glEnd();
- }
- }
- glFlush();
- }
- void init(void)
- {
- glClearColor(1,1,1,5.0);
- glMatrixMode(GL_PROJECTION);
- // glClear(GL_COLOR_BUFFER_BIT);
- glLoadIdentity();
- glPointSize(5.0);
- glOrtho(0.0,100.0,0.0,100.0,-100.0,100.0);
- }
- int main(int a,char **ar)
- {
- glutInit(&a,ar);
- glutInitDisplayMode(GLUT_RED | GLUT_SINGLE);
- glutInitWindowPosition(100,100);
- glutInitWindowSize(800,500);
- glutCreateWindow("Polygon");
- cin >> x1 >> y11 >> x2 >> y2 ;
- init();
- glutDisplayFunc(display);
- glutMainLoop();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement