هندسه محاسباتی بخش اول

در Computational Geometry, Computational geometry, محاسبات کامپیوتری, هندسه محاسباتی, پردازش تصویر

سلام ، سلام به همه ، چه مخاطب خاص چه مخاطب عام ، خلاصه سلام به هر کسی که میاد و به این وبلاگ سر می زنه.

این دفعه می خوام در مورد هندسه محاسباتی باهاتون صحبت کنم.

هندسه محاسباتی یکی از قشنگ ترین شاخه های علوم کامپیوتری هست که ترکیب زیبایی از الگوریتم ها ، هندسه و قدرت پردازش کامپیوتری است. این رشته سنش کمه و تازه داره پیشرفت می کنه و می تونه زمینه خوبی برای کار های پژوهشی باشه. این رشته کاربرد های زیادی در پردازش تصویر ، رباتیک ، تحیلیل سه بعدی و ... داره.

فعلاً خیلی در مورد اینکه هندسه محاسباتی چی هست و چی نیست توضیح نمی دم وقت واسه اینجور توضیحات هست ایشالله باشه واسه دفعه های بعد. و الآن می خوام زود تر بریم سر اصل مطلب.

خب گفتم که این شاخه ترکیبی از هندسه و کامپیوتره ، پس در درجه اول باید بتونیم مفاهیم هندسی رو به صورت کامپیوتری بیان کنیم. چون در ابتدای کار هستیم رو فضا های دو بعدی کار می کنیم و در آینده کارمون رو به بعد های بیشتر بسط می دیم.

نقطه :

ساده ترین مفهوم هندسی است که باید قبل از هر چیز دیگری آنرا به کامپیوتر بفهمانیم.نقطه در فضای دو بعدی دارای دو مولفه x و y است که باید این را به زبان کامپیوتری بیان کنیم برای اینکار یک کلاس خیلی ساده مثل زیر در یک زبان برنامه نویسی (در اینجا جاوا) ایجاد می کنیم:

 

 












  1.  
  2. public class MyPoint {
  3. double x;
  4. double y;
  5. }

 

می بینید که به همین سادگی  می توانیم یک نقطه را با داشتن مختصات x و y آن در کامپیوتر نشان دهیم، البته منظور از نشان دهیم به صورت گرافیکی نیست یعنی می توانیم با کلاس فوق مفهوم نقطه را به ماشین زبان نفهم کامپیوتر بفهمانیم

پاره خط :

دومین مفهموم مهمی که در هندسه محاسباتی در فضای دو بعدی به آن نیاز داریم مفهموم پاره خطه، از اونجایی که اشیا و اشکال هندسی معمولاً محدود هستند و تا بی نهایت ادامه ندارند لذا بیشتر برای ما پاره خط مهمه یعنی بیشتر با اشکالی سر و کار داریم که از پاره خط هایی تشکیل شده اند و نه از خط های بی سر و ته (بی انتها) که تا بی نهایت ادامه دارند.

چون قبلاً به کامپیوتر فهموندیم که نقطه چیه الآن خیلی راحت می تونیم بهش بفهمونیم که بابا پاره خط هم چیز سختی نیست یه نقطه ابتدایی و یه نقطه انتهایی داره همین.

یعنی به سادگی و با کمک کلاس قبلی کلاس جدید زیر رو ایجاد می کنیم :

 










  1. public class MySegment {
  2. MyPoint start;
  3. MyPoint end;
  4. }

دقت کنید که کلاس هایی که اینجا تعریف می کنم نه واسشون سازنده می زارم نه متدی نه چیزی ، فعلاً نمی خوام در گیر این جنگولک بازی ها بشید فقط مفهموم کلی رو می خواهیم دور هم درک کنیم جزئیات در ادامه کار اضافه میشن

از اونجایی که خیلی وقته وبلاگ نویسی نکردم حوصله زیاد نوشتن ندارم و برای این دفعه تا همینجا کافیه ، منتظر  بخش های بعدی این موضوع باشید.