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

line2d.contain

بدأه ريحانة الاقصى في 18 يونيو 2011 · 12 رد · 456 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عند انشاء كائن من line 2d وتخزينه في array list

اذا اردت ان افحص اذا كانت نقطة معينة تقع ضمن ذلك الخط او لا

استخدمت الميثود contain

 //find line which contain this point
      public static int whichline(int xu, int yu){

      for(int g=0;g<lines.size();g++){

       if (lines.get(g).contains(xu,yu){

      	return g;

      }}	

      return -1; 	

      }

ولكن دائما يظهر انه لا يحتوي على هذه النقط

كيف اقوم بانشاء range للقيم بحيث يظهر انها ضمن هذا الخط او هل يوجد ميثود اخر يفي بالغرض

#2

ممكن الكود كامل؟

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#3

الكود كامل طويل جددددددددددا اكثر من 1000 سطر

#4

طيب هل يحتوي الline على list of points?

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#5

لا ال line عبارة عن array list نوع الكائنات فيها line2d

#6
(lines.get(g).contains(xu,yu

بس علشان اكون واضح في السطر اللي فوق ناقصك (

التعبير ده

lines.get(g)

حيرجع ايه؟ يعني lines

هل :

List<line2d> lines = new ArrayList<line2d>();

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#7

صحيح lines.get(g)

يرجع

List<line2d> lines = new ArrayList<line2d>();

#8

هل الكلاس line2d يحتوي على مجموعة نقاط؟ list of points

كيف تعمل الدالة contains في الكلاس line2d

(lines.get(g).contains(xu,yu))

سوف ترجع التالي :

lines هي من نوع <ArrayList<line2d

التعبير

lines.get(g)

يرجع line2d اوبجكت من داخل الليست

واخيرا

(lines.get(g).contains(xu,yu))

يستدعي الداله contains من الكلاس line2d

لذا عليكي الرجوع الى ال documentation الخاص بالدالة في هذا الكلاس

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#9

عندما فتحت الdocomintation

وجدت ان الميثود يفحص اذا كانت احداثيات النقطة المعطاة تقع ضمن الخط ولكن انا اريد عمل range للقيم اي ليس الاحداثيات بالزبط

ولكن لم استطع عمل ذلك لان الميثود يرجع boolean

#10

افحصي الrange داخل while loop

اذا انتي تريدين فحص ما اذا كانت مجموعة من النقاط موجوده داخل خط معين ، يمكنك اسناد الارجاع الboolean داخل مصفوفه تمثل هذه النقاط

اما اذا كان قصدك بrange شيئ اخر فالرجاء التوضيح مع مثال

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#11

مداخله بسيطه الـline2d بتكون كدا

Line2D

يعنى الكود دا هيكون بالشكل التالى

    	List<Line2D> lines = new ArrayList<Line2D>();

Software Developer
Mahmoudkelany.com


 

#12

كنت اظن ان line2d هو كلاس خاص بكي ولكن بعد توضيح الاخ محمود وبالرجوع الى documentation

الدالة contains ترجع true فقط اذا كان الخط يحد شكل ما، فهي ترجع ما اذا كانت نقطة ما داخل حدود الشكل

اما بنالنسبة لاستدعاء الدالة على Line2D اوبجكت فانها ترجع false دائما

وهذا ال documentation الخاص بالدالة

اقتباس

Tests if a specified coordinate is inside the boundary of this Line2D. This method is required to implement the Shape interface, but in the case of Line2D objects it always returns false since a line contains no area.

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#13

قومي بإيجاد معادلة الخط

وافحصي إذا كانت النقطة تحقق المعادلة

تحياتي

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

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

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

728x90.png

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