#include <iostream>
#include <stdlib.h>
#include <math.h>
#include <GL/glut.h>
using namespace std;
void setPixel(int x, int y)
{
glBegin (GL_POINTS);
glVertex2i (x,y);
glEnd();
}
void draw_line(int x0,int y0,int xEnd,int yEnd)
{
int dx = fabs(xEnd-x0) , dy = fabs(yEnd-y0);
int p = 2 * dy - dx ;
int TwoDy = 2 * dy , twoDyMinusDx = 2 *(dy-dx);
int x,y;
cout<<p<<endl;
if(x0 > xEnd){
x=xEnd;
y=yEnd;
xEnd=x0;
}
else
{
x=x0;
y=y0;
}
setPixel (x,y);
while(x<xEnd){
x++;
if(p<0)
p+= TwoDy ;
else
{
y++;
p+= twoDyMinusDx ;
}
setPixel(x,y);
}
}
void init(void)
{
glClearColor(1.0,1.0,1.0,0.0);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0.0,1100.0,0.0,700.0);
}
void winReshapeFcn(int newWidth, int newHeight)
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0,(GLdouble)newWidth,0.0,(GLdouble)newHeight);
glClear(GL_COLOR_BUFFER_BIT);
}
int main(int argc,char** argv)
{int x2;
int y2;
int x3;
int y3;
cout << "Please enter the start point (x0,y0) of the line:" << endl;
cin >> x2;
cin >> y2;
cout <<"Please enter end point (x1,y1) of the line:"<< endl;
cin >> x3;
cin >> y3;
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition(50,20);
glutInitWindowSize(1100,700);
glutCreateWindow("First OpenGL Program");
init();
glutDisplayFunc(draw_line( x2, y2,x3,y3));
glutReshapeFunc(winReshapeFcn);
glutMainLoop();
return 0;
}[تنبيه - عنوان غير مناسب : ]proplem
مغلق
الأخ الكريم/الأخت الكريمة
السلام عليكم ورحمة الله وبركاته
مرحباً بكم في منتدى الفريق العربي للبرمجة
نود تنبيهك أن العنوان غير مناسب.
الرجاء اختيار عنوان مناسب أكثر في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية.
وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!!
قواعد المشاركة
شاكرين لكم حُسن تعاونكم
proplem ؟
يا أخي إذا كنت حريص على العثور على إجابة ، فاتعب قليلاً في كتابة التفاصيل بلغة عربية مفهومة أو مكسرة .. المهم الفكرة .
لو أضع لك كود الآن .. وأقول لك : مشكلة ،
هل ستفهم شيء ؟
مغلق .
تطبيق طمأنينة ، نسخة بيتا على أندرويد
عبدالله الشمّري - Al-Shammari
twitter @abshammeri
abshammeri AT gmail.com
github : abshammeri
هذا الموضوع مغلق.