الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ارجو مراجعة الكود واكتشاف الخطأ

مغلق
بدأه ensana في 20 أكتوبر 2005 · 4 رد · 685 مشاهدة · في OpenGL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

يا جماعة انا كتبت الكود ده في الفيجوال سي ومبيطلعش غير خط افقي ونقطة ومعرفش فين الغلط

#include<windows.h>

#include<gl/gl.h>

#include<gl/glu.h>

#include<gl/glaux.h>

#include<math.h>

void display ();

void line(int x1,int y1,int x2,int y2);

void draw_point(int x,int y );

void main()

{

auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);

auxInitPosition(0,0,500,500);

auxInitWindow("line");

auxMainLoop((AUXMAINPROC)display);

}

void display()

{

glClearColor(0.0,0.0,0.0,0.0);

glClear(GL_COLOR_BUFFER_BIT);

glColor3f(1.0,1.0,1.0);

glPointSize(5.0);

draw_point(5,6);

line(50,70,50,100);

line(50,100,150,100);

line(50,50,100,200);

line(50,40,450,100);

}

void draw_point(int x,int y)

{

glBegin(GL_POINTS);

glVertex2i(x,y);

glEnd();

glFlush();

}

void line(int x1,int y1,int x2,int y2)

{

float m;

int c=(x2-x1);

int d=(y2-y1);

m=d/c;

if(m<1)

{ for(int i=x1;x1<=x2;i++)

{

int y=(m*i)+200;

draw_point(i,y);

}

}

if(m>1)

{

for(int i=y1;y1<=y2;i++)

{

int x=(i-200)/m;

draw_point(x,i);

}

}

if(m==0)

{

for(int i=x1;x1<=x2;i++)

{

y1=200;

draw_point(i,y1);

}

}

if((x2-x1)==0)

{

for(int i=y1;y1<=y2;i++)

{

draw_point(x1,i);

}

}

}

#2

طب إيه المطلوب من البرنامج ؟

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#3

وضح اخى فكرة البرنامج وسوف نحلة ان شاء الله

#4

الاخ الكريم

يبدو انك بترسم اربع خطوط باستخدام دالة الخط المعقدة و التى اظن بها الظنون. عملية ايجاد الميل float m منخارج قسمة 2int اظن محتاج شوية casting .على كل حال افضل رسم الخط ايضاً بشئ بسيط مثل هذا

void Line(int x1, int y1, int x2, int y2)

و افضل اخراج امر flushالى البرنامج الرئسي ليتم مرة واحدة فى النهاية و هذا مصدر اخر لظهور بعض الاشكال فقط. لكن ليس فى هذا البرنامج

.

و بالتوفيق

#5
void Line(int x1, int y1, int x2, int y2)
{
 glBegin(GL_LINE_STRIP);
	glVertex2i(x1,y1);
	glVertex2i(x2,y2);
  glEnd();
}

هذا الموضوع مغلق.

مواضيع مشابهة