گرافیک 1

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

Upload: cricket

Post on 04-Jan-2016

206 views

Category:

Documents


1 download

DESCRIPTION

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

TRANSCRIPT

Page 1: گرافیک 1

1گرافیک فصل ششم

الگوریتم های برش

S. POORKIANI1

Page 2: گرافیک 1

2

مقدمه در این فصل به معرفی و بررسی چند الگوریتم برش زنی

خط و اشکال می پردازیم، که به طور کلی شامل دو دسته اند:

برش زنی خطوط1.Cohen-Sutherlandالگوریتم 1.Liang-Barskyالگوریتم 2.

برش زنی اشکال2.Sutherland-Hodgmanالگوریتم 1.Weiler Athertonالگوریتم 2.

S. POORKIANI

Page 3: گرافیک 1

3

مثال

S. POORKIANI

Page 4: گرافیک 1

4

مثال

S. POORKIANI

Page 5: گرافیک 1

5

مثال

S. POORKIANI

Page 6: گرافیک 1

6

: خط برش -CohenالگوریتمSutherland

S. POORKIANI

(Xmin, Ymin)

(Xmax, Ymax)

(Xmin, Ymax)

(Xmax, Ymin)

Page 7: گرافیک 1

7

: خط برش -CohenالگوریتمSutherland

S. POORKIANI

TopBottom Right Left

4 3 2 1

منطقه

شماره بیت

Page 8: گرافیک 1

8

: خط برش -CohenالگوریتمSutherland

S. POORKIANI

(Xmin, Ymin)

(Xmax, Ymax)

(Xmin, Ymax)

(Xmax, Ymin)

1001

0101

0001

0000

1000

0010

1010

0100

0110

TopBottom Right Left

و در غیر این 1 یعنی بیت اول )تقاطع چپ( XA<Xminاگر است.0صورت

و در غیر 1 یعنی بیت دوم )تقاطع راست( XA>Xmaxاگر است.0این صورت

و در غیر این 1 یعنی بیت سوم )تقاطع پایین( YA>Ymaxاگر است.0صورت

و در غیر این 1 یعنی بیت چهارم )تقاطع باال( YA<Yminاگر است.0صورت

Page 9: گرافیک 1

9

: خط برش -CohenالگوریتمSutherland

اگر نتیجهOR کدهای بیتی دو راس انتهایی و ابتدایی خط باشد یعنی دو سر خط در محدوده پنجره 0000برابر

قرار دارد و برشی صورت نمی گیرد.

نشد، آنها را با هم 0000اگر AND می کنیم. اگر نتیجه شود 0مخالف

یعنی کل خط خارج از محدوده دید است و هیچ خطی رسم نمیشود.

اگر نتیجهAND شود حداقل یک سر خط بیرون 0 برابر با از پنجره است. ممکن است هر دو سر خط بیرون از

پنجره باشند. ولی حتما قسمتی از خط داخل محدوده دید است.

S. POORKIANI

Page 10: گرافیک 1

10

: خط برش -CohenالگوریتمSutherland

یکی از رئوس را به دلخواه انتخاب می کنیم، اگر خارج ازمحدوده بود، نقطه تقاطع خط با مرز پنجره دید را پیدا

می کنیم و این نقطه جدیدرا جایگزین نقطه خارج از محدوده می کنیم.

برای تشخیص مرز، کافیست کدچهاربیتی راس مورد نظر را

بررسی نمود.

S. POORKIANI

1001

0101

0001

0000

1000

0010

1010

0100

0110 Top Bottom Right Left

4 3 2 1

Page 11: گرافیک 1

11

: خط برش -CohenالگوریتمSutherland

اگر نقطه تقاطع روی مرز چپ یا راست باشد و دو راسآغاز و پایان خط

(x1 , y1( و )x2 , y2 باشند و شیب خط )m ،باشد ( عبارتست از:xt , ytمختصات نقطه تقاطع )

xt = Xmin (چپ) یا xt = Xmax (راست)

yt = y1 + m(xt - x1 )

S. POORKIANI

Page 12: گرافیک 1

S. POORKIANI 12

: خط برش -CohenالگوریتمSutherland

اگر نقطه تقاطع روی مرز باال یا پایین باشد و دو راسآغاز و پایان خط

(x1 , y1( و )x2 , y2 باشند و شیب خط )m ،باشد ( عبارتست از:xt , ytمختصات نقطه تقاطع )

yt = Ymin (باال) یا yt = Ymax (پایین)

xt = x1 + (yt - y1 )/m

Page 13: گرافیک 1

S. POORKIANI 13

: خط برش -CohenالگوریتمSutherland

1001

0101

0001

0000

1000

0010

1010

0100

0110

Page 14: گرافیک 1

S. POORKIANI 14

: خط برش -CohenالگوریتمSutherland

:مثال(x1 , y1)=(220 , 70)

(x2 , y2)=(50 , 240)

Xmin , Ymin = 100