PDA

View Full Version : ایجاد محیط برای ترسیم گراف به صورت گرافیکی



Developer Programmer
شنبه 18 خرداد 1387, 11:11 صبح
فرض کنین یه محیطی طراحی کردیم تا کاربر بتونه گراف دلخواهش رو با چند کلیک ترسیم کنه.

دنبال یه منطقی میگردم تا اونچه رو که کاربر ترسیم کرده ، بتونم توی آرایه بریزم

dkhatibi
شنبه 18 خرداد 1387, 13:14 عصر
در صورتیکه از هر راس به راس دیگر فقط یک یال وجود دارد
گراف شما چند تا راس خواهد داشت.
شما می تونید یک ارایه ی دو بعدی n*n ایجاد کنید که N تعداد راسهاس . اگر از a به b راسی وجود دارد درایه ی (a,b) وزن یال است وگرنه می تونید اونو با 0 یا منفی یک پر کنید.

Developer Programmer
شنبه 18 خرداد 1387, 14:17 عصر
اینو که هرکسی میدونه... من دنبال اینم که چطور بفهمم کاربر چی کشیده تا اونرو به آرایه بریزم

x125x125
دوشنبه 27 خرداد 1387, 07:39 صبح
فرض کنین یه محیطی طراحی کردیم تا کاربر بتونه گراف دلخواهش رو با چند کلیک ترسیم کنه.

دنبال یه منطقی میگردم تا اونچه رو که کاربر ترسیم کرده ، بتونم توی آرایه بریزم

سلام.
لازم نيست حتما بعد از طراحي از كاربر بگيري . مي توني هنگام طراحي با مثلا يه راديو باتن مشخص كني كه داره راس مي ذاره يا يال .
البته نام گذاري ها اوتوماتيك انجام مي گيرند و ضمن اينكه نبايد مختصات اون رئوس رو از دست بدي .

vcldeveloper
پنج شنبه 30 خرداد 1387, 01:16 صبح
اون چیزی که کاربر رسم میکنه چی هست؛ خط و نقطه؟
چطور رسم میشه؛ با استفاده از متدهای رسم گرافیکی، یا بصورت کامپوننت؟
پیشنهاد میکنم بصورت کامپوننت اینا رو بسازی، یعنی بجای اینکه بیای خط و نقطه رسم کنی، یک کامپوننت برای نمایش خط و یک کامپوننت برای نمایش نقطه ایجاد و به ازاء هر خط و نقطه ایی که کاربر میکشه، یک شی از این کامپوننت ها را ایجاد کن و روی فرم بزار. اگر این کار را کردی، نگهداری آنها و حفظ مشخصات آنها کار آسونی هست، میتونی از یک کلاس مشتق شده از TCollection استفاده کنی، یا از یک TObjectList.
اگر هم حوصله ایجاد کلاس های گرافیکی مربوطه را نداری، از TShape دلفی استفاده کن، هم Circle رسم میکنه، هم Rectangle.