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

Unit disk graph أو Quasi Unit Disk Graph

بدأه سماء بعيدة في 17 فبراير 2012 · 7 رد · 694 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحبا

هل أحد لديه معلومه عن Unit disk graph model or Quasi Unit Disk Graph model

أي أمثله لها في مجال الشبكات من ناحية برمجية

#2

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

#3

شكرا جزيلا

أتمنى من الاشراف نقل الموضوع للقسم المحدد، وعذرا على الازعاج

#4

السلام عليكم

لاتمام هذا البرنامج، قمت بعمل برنامج يستقبل خريطة (صورة خريطة) ويرسم عليها نقاط (النقاط عبارة عن كلاس، له مجموعة من الخصائص) وبعدين احسب المسافة بين كل نقطتين عن طريق المعادلة الإقليدية الشهرية بهذا الشكل:

Public Function getDistance(ByVal sq1 As classNode, ByVal sq2 As classNode) As Double
Dim xdiff, ydiff As Integer
Dim rdistance As Double = 0
xdiff = Math.Abs(sq2.pCenter.X / 100 - sq1.pCenter.X / 100)
ydiff = Math.Abs(sq2.pCenter.Y / 100 - sq1.pCenter.Y / 100)
rdistance = Math.Sqrt(Math.Pow(xdiff, 2) + Math.Pow(ydiff, 2))
Return rdistance
End Functio

الغرض اني حسب هل المسافة بين نقطتين أقل من أو يساوي ا كلم، وبالتالي ارسم سهم بينهم

طبعا زي مانتم عارفين القيم هنا قيم بيكسل، وبالتالي النتائج تطلع غير صحيحة

ولذلك قسم بتقسيم الاحداثيات على 100 (الكود اعلاه) لأن الشاشة حددتها مسبقا (width = 696 and height = 384)

المفروض تطلع لي النتيجة

http://cnx.org/content/m34835/latest/Independent.png

ولكن بسبب حساباتي تطلع بهذا الشكل

http://im27.gulfup.com/2012-03-15/1331813999861.png

الرجاء لو عندكم اي معلومه افيدوني، لأن بناء هذه الخطوة اساسي لاكمال بقية البرنامج

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

أريد أن أعرف ماهي الطريقة الصحيحة لتحويل احداثيات الشاشة (بيكسل) إلى احداثيات صحيحة

تم تعديل هذه المشاركة بواسطة سماء بعيدة في 17 مارس 2012 في 16:42

#5

وعليكم السلام ورحمة الله وبركاته ...

بغض النظر عن صحة المعادلة أم لا ، أعتقد أنه يجب استخدام المعامل "\" بدلا من "/" ..

1

... إذا كنت تعتقد أن مشاركتي مفيده ، الرجاء قم بتقييمي ...

%2525D8%2525A8%2525D8%2525B5%2525D9%252585%2525D8%2525A9%252B%2525D8%2525B9%2525D9%252584%2525D9%252585%252B%2525D9%252588%2525D8%2525B5%2525D8%2525B1%2525D8%2525AE%2525D8%2525A9%252B%2525D8%2525A7%25

#6
عاشق للبرمجة كتب:

وعليكم السلام ورحمة الله وبركاته ...

بغض النظر عن صحة المعادلة أم لا ، أعتقد أنه يجب استخدام المعامل "\" بدلا من "/" ..

وعليكم السلام ورجمه الله وبركاته

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

اعتقد ان الفيجوال بيسك يعدلها تلقائي ويقسم بالصورة الصحيحة

ومازال السؤال قائم: ماهي الطريقة الصحيحة لتحويل احداثيات الشاشة (بيكسل) إلى احداثيات صحيحة؟

#7
سماء بعيدة كتب:

وعليكم السلام ورجمه الله وبركاته

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

اعتقد ان الفيجوال بيسك يعدلها تلقائي ويقسم بالصورة الصحيحة

ومازال السؤال قائم: ماهي الطريقة الصحيحة لتحويل احداثيات الشاشة (بيكسل) إلى احداثيات صحيحة؟

غير صحيح ..

المعامل "/" في vb.net يستخدم للقسمة ..

المعامل "\" في vb.net يستخدم للقسمة العددية ..

مثل :

5/2 = 2.5

5\2 = 2

كما هو الحال في vb6 لم يتغير شئ ...

بالنسبة للنتائج .. لو قارنت الصورتين لوجدت أن الكلاس يعمل بكفائة ، فقط هناك بعض النقاط لا تظهر فالمشكلة ليست باحتساب المسافة وإنما باحتساب عدد النقاط ...

http://im25.gulfup.com/2012-03-19/1332105960481.jpg

تم تعديل هذه المشاركة بواسطة عاشق للبرمجة في 19 مارس 2012 في 00:27

1

... إذا كنت تعتقد أن مشاركتي مفيده ، الرجاء قم بتقييمي ...

%2525D8%2525A8%2525D8%2525B5%2525D9%252585%2525D8%2525A9%252B%2525D8%2525B9%2525D9%252584%2525D9%252585%252B%2525D9%252588%2525D8%2525B5%2525D8%2525B1%2525D8%2525AE%2525D8%2525A9%252B%2525D8%2525A7%25

#8
عاشق للبرمجة كتب:

غير صحيح ..

المعامل "/" في vb.net يستخدم للقسمة ..

المعامل "\" في vb.net يستخدم للقسمة العددية ..

مثل :

5/2 = 2.5

5\2 = 2

كما هو الحال في vb6 لم يتغير شئ ...

بالنسبة للنتائج .. لو قارنت الصورتين لوجدت أن الكلاس يعمل بكفائة ، فقط هناك بعض النقاط لا تظهر فالمشكلة ليست باحتساب المسافة وإنما باحتساب عدد النقاط ...

http://im25.gulfup.com/2012-03-19/1332105960481.jpg

جزاك الله خير

ممكن توضح لي اش قصدك باحتساب عدد النقاط

انا سويت trace للبرنامج وكمان سويت dry run بالورقة والقلم

وكان البرنامج يعدي على كل النقاط (nested for loop) بحيث يقارن النقطة الأولى بكل النقاط ، وبعدين يمسك النقطة الثانية ويقارنها بكل النقاط وهكذا

واللي حصل، ان لما احسب المسافة بين نقطتين تطلع بعض النتائج مابين (0,1) والبعض اكبر من 1

على حسب قيم (x,y) لكل نقطة

تم تعديل هذه المشاركة بواسطة سماء بعيدة في 19 مارس 2012 في 18:44

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