1 / 14

گرافیک 1

گرافیک 1. فصل ششم الگوریتم های برش. مقدمه. در این فصل به معرفی و بررسی چند الگوریتم برش زنی خط و اشکال می پردازیم، که به طور کلی شامل دو دسته اند: برش زنی خطوط الگوریتم Cohen-Sutherland الگوریتم Liang- Barsky برش زنی اشکال الگوریتم Sutherland- Hodgman

cricket
Download Presentation

گرافیک 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. گرافیک 1 فصل ششم الگوریتم های برش S. POORKIANI

  2. مقدمه • در این فصل به معرفی و بررسی چند الگوریتم برش زنی خط و اشکال می پردازیم، که به طور کلی شامل دو دسته اند: • برش زنی خطوط • الگوریتم Cohen-Sutherland • الگوریتم Liang-Barsky • برش زنی اشکال • الگوریتم Sutherland-Hodgman • الگوریتم Weiler Atherton S. POORKIANI

  3. مثال S. POORKIANI

  4. مثال S. POORKIANI

  5. مثال S. POORKIANI

  6. الگوریتم برش خط: Cohen-Sutherland (Xmax, Ymin) (Xmin, Ymin) (Xmin, Ymax) (Xmax, Ymax) S. POORKIANI

  7. الگوریتم برش خط: Cohen-Sutherland منطقه شماره بیت S. POORKIANI

  8. الگوریتم برش خط: Cohen-Sutherland اگر YA<Ymin یعنی بیت چهارم (تقاطع بالا) 1 و در غیر این صورت 0 است. (Xmax, Ymin) (Xmin, Ymin) 1001 1010 1000 اگر XA>Xmax یعنی بیت دوم (تقاطع راست) 1 و در غیر این صورت 0 است. 0001 0000 0010 اگر XA<Xmin یعنی بیت اول (تقاطع چپ) 1 و در غیر این صورت 0 است. 0101 0100 0110 (Xmin, Ymax) (Xmax, Ymax) اگر YA>Ymax یعنی بیت سوم (تقاطع پایین) 1 و در غیر این صورت 0 است. S. POORKIANI

  9. الگوریتم برش خط: Cohen-Sutherland • اگر نتیجه OR کدهای بیتی دو راس انتهایی و ابتدایی خط برابر 0000 باشد یعنی دو سر خط در محدوده پنجره قرار دارد و برشی صورت نمی گیرد. • اگر 0000 نشد، آنها را با هم AND می کنیم. اگر نتیجه مخالف 0 شود یعنی کل خط خارج از محدوده دید است و هیچ خطی رسم نمیشود. • اگر نتیجه AND برابر با 0 شود حداقل یک سر خط بیرون از پنجره است. ممکن است هر دو سر خط بیرون از پنجره باشند. ولی حتما قسمتی از خط داخل محدوده دید است. S. POORKIANI

  10. الگوریتم برش خط: Cohen-Sutherland • یکی از رئوس را به دلخواه انتخاب می کنیم، اگر خارج از محدوده بود، نقطه تقاطع خط با مرز پنجره دید را پیدا می کنیم و این نقطه جدیدرا جایگزین نقطه خارج از محدوده می کنیم. • برای تشخیص مرز، کافیست کدچهاربیتی راس مورد نظر را بررسی نمود. 1001 1010 1000 0001 0000 0010 0101 0100 0110 S. POORKIANI

  11. الگوریتم برش خط: Cohen-Sutherland • اگر نقطه تقاطع روی مرز چپ یا راست باشد و دو راس آغاز و پایان خط(x1 , y1) و (x2 , y2) باشند و شیب خط m باشد، مختصات نقطه تقاطع (xt , yt) عبارتست از: xt= Xmin (چپ) یاxt = Xmax (راست) yt= y1 + m(xt - x1 ) S. POORKIANI

  12. الگوریتم برش خط: Cohen-Sutherland • اگر نقطه تقاطع روی مرز بالا یا پایین باشد و دو راس آغاز و پایان خط(x1 , y1) و (x2 , y2) باشند و شیب خط m باشد، مختصات نقطه تقاطع (xt , yt) عبارتست از: yt= Ymin (بالا) یاyt = Ymax (پایین) xt= x1 + (yt - y1 )/m S. POORKIANI

  13. الگوریتم برش خط: Cohen-Sutherland 1001 1010 1000 0001 0000 0010 0101 0100 0110 S. POORKIANI

  14. الگوریتم برش خط: Cohen-Sutherland • مثال: • (x1 , y1)=(220 , 70) • (x2 , y2)=(50 , 240) • Xmin , Ymin = 100 S. POORKIANI

More Related