http://geomalgorithms.com/a05-_intersect-1.html
به طرز عجیبی مطمئنم این پست را قبلاً گذاشتم ولی هر چی گشتم نبود!!
http://beowulf.lcs.mit.edu/18.337-2008/lectslides/scan.pdf
http://www.sid.ir/en/VEWSSID/J_pdf/85620032B02.pdf
بالاخره فهمیدم که ناحیه قابل دید را چطوری حساب کنم.
به ازای خطهایی که از نقطه دید به رأسها وصل میشوند، باید upper envelope را به دست بیاورم.
برای این کار میتوانم دوگان بگیرم و الگوریتم پوسته محدب کتاب لایتون را بنویسم. (البته باید چک کنم ببینم قابل پیاده سازی هست یا نه.)
برای سه بعدی هم باید جواب بدهد. فقط آنجا به جای اینکه خط داشته باشیم صفحهی گذرنده از هر ضلع مثلثها و نقطه دید را باید بگیرم.
برای پیدا کردن upper hull در حالت ۳-بعدی چیزی بلد نیستم. :)
برای تمرین موازی لازم دارید:
http://www.bu.edu/pasi/files/2011/07/Lecture31.pdf
حواستان باشد که اگر در حافظه اشتراکی توسط دو نخ همزمان چیزی نوشته شود مقدارش صفر میشود!
این یک حالت همیشه زنده از بازی زندگی است (یک بلوک ۲*۲ از خانههای زنده) که اینجا مثلاً برای زمان ۱۰ امتحان شده است که آخرین عدد فایل است (در یک خط جدا نوشته شده) و میتوانید آن را عوض کنید. درست کردن فایل تست برای مسأله کار سختی نیست ولی گفتم اگر کسی خواست..
نمونهی ۱۰۰*۱۰۰:
دریافت
حجم: 19.7 کیلوبایت
نمونهی ۱۰۰۰*۱۰۰۰:
دریافت
حجم: 1.91 مگابایت