PDA

View Full Version : سوال: کمک برای نوشتن سورس Convex Hull با متد گراهام به زبان ++Turbo C



crackestan
جمعه 28 مهر 1391, 23:21 عصر
با سلام خدمت تمامیه دوستان و اساتید عزیز
من میخوام برای پروژه سورس Convex Hull رو با متد گراهام به زبان ++Turbo C بنویسم .
برنامه ای که تا اینجای کار نوشتم موس رو فراخونی میکنه و مختصات حرکتی موس رو نمایش میده و کلیک کردن رو تشخیص میده .
توی برنامه گفتم که اگر کاربر کلیک رو فشار داد یه نقطه برام بزار تو صفحه ( مختصات نقطه ی گذاشته شده رو هم میتونم با مختصاتی که موس در اون لحظه کلیک در اونجا قرار داشته ثبت کنم )
الگوریتمی که توی کتاب های فارسی برای این موضوع پیدا کردم به این صورته که :
نقطه ای که دارای کمترین مقدار y ( بیشتر مقدار پیکسل در واحد عمودی ( y ) ) دارد رو بدست میاریم و در یک پشته قرار میدیم و اسم اون رو p1 میزاریم . نقطه بعدی رو با توجه به کمترین زاویه قطبی راست گَرد !! در پشته با نام p2 ذخیره میکنیم و بقیه نقطه ها رو نیز با همین منوال )
حال من مشکلم اینه که نقطه ی دوم رو نمیتونم به طور صحیح پیدا کنم .
البته توی کتاب طراحی الگوریتم استاد نوراله یه الگوریتم رو کشیده و توضیح هم داده ولی من هنوز مشکل دارم توی این موضوع .
ممنون میشم دوستان بنده رو راهنمایی کنن که چه کاری بکنم بهتر به نتیجه درست میرسم .
خیلی هم تلاش کردم و دنبال کد به زبان ++Turbo C خیلی گشتم ولی اصلا نبود .
مطمئنم که حتما هستند کسانی که به این مشکل برخوردن و یا در آینده به این برنامه نیاز دارند . ( انشالله کارم که تموم شد ، پروژه رو میزارم برای دوستان با توضیح کامل که بتونن در آینده راحت استفاده کنن )
پیشا پیش از توجه و راهنمایی شما عزیزان سپاس گذارم .
( ممنون میشم برام بگید که چطوری بهتره که نقاط رو ذخیره کنم و .... منظورم اینه که خیلی نیاز دارم به توضیحات دقیقتون )

shahmohammadi
دوشنبه 01 آبان 1391, 07:59 صبح
سلام.
از روش Monotone chain هم مي تونيد استفاده كنيد. اينجا اين الگوريتم رو با چند زبان پياده سازي كرده.
http://en.wikibooks.org/wiki/Algorithm_Implementation/Geometry/Convex_hull/Monotone_chain