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

رسم نقطة

بدأه AliveMyth في 14 نوفمبر 2008 · 4 رد · 938 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

إخوتي الأعزاء

درسنا في مادة الرسم بالحاسوب خوارزمية Bresentham's Line Algorithm

وطلب منا مدرس المادة أن نحول الخوارزمية إلى برنامج في الجافا

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

فاجتهدت من عندي وحولت كود رسم خط إلى كود رسم نقطة

ولكن لم تنفع الطريقة ويظهر لي خطأ في كود g.draw(point)

فأرجو المساعدة

وهذا البرنامج الذي كتبة

وربما يكون هناك خطأ آخر في كتابة الخوارزميو فأرجو تنبيهي بذلك

اقتباس
public void paint(Graphics g)

{

Graphics2D g2 = (Graphics2D)g;

int x0 = 40;

int y0 = 50;

int x1 = 220;

int y1 = 250;

int xn=x0;

int yn=y0;

int Dx = x1-x0;

int Dy = y1-y0;

Point2D.Double point = new Point2D.Double(x0, y0);

g2.draw(point);

int p = 2*Dy-Dx;

int k=0;

while (xn=x1 & yn=y1)

{

if (p<0)

{

xn=xn+1;

yn=yn;

Point2D.Double point = new Point2D.Double(xn, yn);

g2.draw(point);

p=p+2*Dy;

}

else

{

xn=xn+1;

yn=yn+1;

Point2D.Double point = new Point2D.Double(xn, yn);

g2.draw(point);

p=p+2*Dy-2*Dx;

}

}

}

أرجو سرعة الرد لأن البرنامج مطلوب غداً

وبالنسبة للأقواس هي سليمة ولكن لا ادري لماذ في الموضوع تظهر معكوسة

مع خالص تحياتي

:happy: :happy:

#2

بســم الله الـرحمــن الرحيــم

تيب شوف الكود مع المين الي بالملف المرفقة يمكن ينفعك شي لأني بدك import java.awt.Graphics;

اول شيء لازم تعملو وانا ما شفت هاد بكودك؟؟

ان شاء الله على كل حال يوصلك للحال ؟؟

morir.rar

#3

المشكلة ظهرت لك لأن الدالة draw

تأخذ كائن من النوع Shape والنقطة ليست من النوع Shape

لرسم نقطة في جافا

نرسم خط من نقطتين بحيث تزيد المركبة السينية أو الصادية أو كليهما بمقدار بكسل واحد

Line2D.Double point = new Line2D.Double(xn, yn,xn+1,yn);//horizental point
Line2D.Double point = new Line2D.Double(xn, yn,xn,yn+1);//vertical point
Line2D.Double point = new Line2D.Double(xn, yn,xn+1,yn+1);//horizental vertical point

أو لدقة أفضل نرسم مربع طوله وعرضه 1 بيكسيل

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#4
علاء الصالحي كتب:
المشكلة ظهرت لك لأن الدالة draw

تأخذ كائن من النوع Shape والنقطة ليست من النوع Shape

لرسم نقطة في جافا

نرسم خط من نقطتين بحيث تزيد المركبة السينية أو الصادية أو كليهما بمقدار بكسل واحد

Line2D.Double point = new Line2D.Double(xn, yn,xn+1,yn);//horizental point
  Line2D.Double point = new Line2D.Double(xn, yn,xn,yn+1);//vertical point
  Line2D.Double point = new Line2D.Double(xn, yn,xn+1,yn+1);//horizental vertical point

أو لدقة أفضل نرسم مربع طوله وعرضه 1 بيكسيل

تحياتي

شكرا أخي الكريم

وهذه هي الطريقة التي استخدمتها وقدمتها للمدرس

فقد استخمت خط مستقيم نهايته في أوله

تقبل تحياتي

تم تعديل هذه المشاركة بواسطة AliveMyth في 15 نوفمبر 2008 في 16:41

#5
MORIR كتب:
بســم الله الـرحمــن الرحيــم

تيب شوف الكود مع المين الي بالملف المرفقة يمكن ينفعك شي لأني بدك import java.awt.Graphics;

اول شيء لازم تعملو وانا ما شفت هاد بكودك؟؟

ان شاء الله على كل حال يوصلك للحال ؟؟

شكرا لك اخي الكريم

بالنسبة لل Graphics موجودة ولم ينفع البرنامج

لكن ربما المشكلة كما ذكر الـأخ علاء لأن النقطة ليست shape

على العموم شكرا على مرورك

تحياتي

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