slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
فصل سوم مبناهای خروجی گرافیک (Output Primitives) PowerPoint Presentation
Download Presentation
فصل سوم مبناهای خروجی گرافیک (Output Primitives)

Loading in 2 Seconds...

play fullscreen
1 / 50

فصل سوم مبناهای خروجی گرافیک (Output Primitives) - PowerPoint PPT Presentation


  • 194 Views
  • Uploaded on

فصل سوم مبناهای خروجی گرافیک (Output Primitives). مبناهای خروجی گرافیکی یا مبناها توابعی که در بسته های گرافیکی برای توصیف مؤلفه های تصویری گوناگون بکار برده می شوند، . : رنگ قرار داده شده فعلی را در فریم بافر در مکان صحیح ( x,y ) ذخیره می کند.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'فصل سوم مبناهای خروجی گرافیک (Output Primitives)' - dusan


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

فصل سوم

  • مبناهای خروجی گرافیک
  • (Output Primitives)
slide2

مبناهای خروجی گرافیکی یا مبناها

توابعی که در بسته های گرافیکی برای توصیف مؤلفه های تصویری گوناگون بکار برده می شوند،

: رنگ قرار داده شده فعلی را در فریم بافر در مکان صحیح (x,y) ذخیره می کند

: پارامتر color مقدار صحیحی متناظر با کد بیتهای RGB مرکب ذخیره شده برای پیکسل واقع در مکان (x,y) دریافت می کند

5

4

3

2

1

0

0

1

2

3

4

- برای صحنه های سه بعدی، مختصات صفحه بصورت مقادیر سه بعدی که در آن بعد سوم معرف مکانهای جسم نسبت به یک موقعیت دید است، ذخیره می شوند.

-برای صحنه ای دو بعدی، همه مقادیر عمق برابر صفر هستند

slide3

خط

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

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

عمل گرد کردن مختصات به اعداد صحیح باعث می شود شکل پله ای خطهای رستر بویژه در سیستمهای با تفکیک پذیری پایین محسوس شود

معادله خط

مواضع پیکسلی در طول مسیری خط، از روی معادله دکارتی خط قابل محاسبه است.

نقطه شروع

نقطه پايان

و

slide4

در اين الگوريتم ساده براي حالتي که |m|>1 اگر نقش x و y را عوض کنيم خط با شکستگي کمتر و دقت بيشتر رسم خواهد شد.

6

5

5

4

4

3

3

2

2

1

1

0

0

0

1

2

3

4

0

1

2

3

4

y=(1/4)x

y=4x

|m|>1

|m|<1

<1

>1

تغييرات شديدتر است پس نمونه برداري در راستاي x انجام مي‌شود

تغييرات شديدتر است پس نمونه برداري در راستاي yانجام مي‌شود

slide5

متناسب با یک ولتاژ منحرف کننده افقی کوچک قرار داد مي‌شود سپس ولتاژ منحرف کننده عمودی متناظر، با محاسبه مي‌شود

|m|<1 :

متناسب با یک ولتاژ منحرف کننده عمودی کوچک قرار داد مي‌شود سپس ولتاژ منحرف کننده افقی متناظر، با محاسبه مي‌شود

|m|>1 :

الگوریتم DDA

  • مشکلات روش معادله خط:
    • عمل ضرب
    • عمل ROUND کردن
    • محاسبات اعشاري

براي از بين بردن عمل ضرب از معادلات نموي (Incremental Equation) استفاده مي‌شود

x k+1= xk+ 1

yk+1- yk

=m

x k+1- xk

slide6

نقطه شروع سمت راست و |m|<1

نقطه شروع سمت چپ و |m|<1

x k+1= xk- 1

x k+1= xk+ 1

نقطه شروع سمت بالا و |m|>1

نقطه شروع سمت پايين و |m|>1

y k+1= yk+ 1

y k+1= yk- 1

slide8

مزايا و معايب الگوريتم DDA(Digital Differential Analyzer)

-عمل ضرب بکار رفته در معادله خط حذف می‌شود

-انباشته شدن خطاهای گرد کردن در جمعهای متوالی نموها در مد اعداد اعشاری که باعث دور شدن تدریجی مواضع پیکسلی از خط واقعی برای پاره خطهای بلند مي‌شود

-عمل گرد کردن

-حساب در مد اعشاري

الگوریتم خط برزنهام (Bresenham`s Algorithm)

  • قابل کسترش برای نمایش دایره ها و دیگر منحنی ها
  • محاسبات صحیح نموی

؟

؟

؟

؟

slide9

در مثال بحث شده روش برزنهام را براي خطهايی با ضریب زاویه مثبت و کوچکتر از یک (0<m<1)درنظر میگیریم

-در مرحله k ام پيکسل انتخاب شده حال بايد تصميم بگيريم در مرحله K+1 ، پيکسل بعدي :

يا

؟

y k+1

-اين انتخاب به کمک يک پارامتر تصميم‌گيري انجام مي‌شود

؟

yk

xk

x k+1

slide10

يافتن پارامتر تصميم‌گيري Pkبراي الگوريتم برزنهام

y k+1

dupper

y

dlower

y k+1

yk

yk

xk

x k+1

slide11

If (dupper> dlower) 

else

محاسبات اعشاري وجود دارد

slide12

و

m=

Pk=dk .

فرض مي‌کنيم همواره >0 ميباشد و بر علامت dkاثر ندارد

بنابراين علامت pk همان علامت dk است

C ثابت و مقدار آن به xk و yk بستگي ندارد و برابر است با :

c=

Pk<0  dk<0  dupper>dlower  (xk+1,yk) پيکسل منتخب بعدي

Pk>0  dk>0  dupper<dlower  (xk+1,yk+1) پيکسل منتخب بعدي

slide13

محاسبات صحیح و نموی Pk

(1)

از آنجايي که 0<m<1 مي باشد و

Pk<0  yk+1 = yk

Pk>0  yk+1= yk + 1 

نخستین پارامتر با قرار دادن پیکسل شروع در معادله (1) و همچنين در معادله خطy=mx+b و ارزیابی m بصورت بدست مي‌آيد

slide16

مثال : خط با رئوس (20,10) و (30,18) به کمک الگوريتم برزنهام مرحله به مرحله توليد کنيد

(20,10)=

(30,18)=

پارامتر تصمیم اولیه:

نموها برای محاسبة پارامترهای تصمیم متوالی

slide17

برای خطی با ضریب زاویه مثبت و بزرگتر از یک، نقشهای جهتهای x و y را عوض می کنیم.

y k+1= yk+ 1و تصميم‌گيري بينxk و xk+1ها

(xk,yk+1)

يا

(xk+1,yk+1)

y k+1= yk+ 1

dleft

dright

؟

؟

y k+1

yk

x

x k+1

xk

slide18

برای خطی با ضریب زاویه منفي يکي از جهت‌ها افزايش و ديگري کاهش مي‌يابد

xk+1= xk+ 1و تصميم‌گيري بينyk و yk-1ها

؟

yk

y k-1

؟

xk

x k+1

slide19

خط‌هاي و و مستقيما و بدون پردازش با الگوريتم برزنهام رسم مي‌شوند

نمایش چند ضلعیها

  • پیاده سازی پردازه چند ضلعی با n-1 بار فراخوانی الگوریتم ترسیم خط برای نمایش خطهای متصل کننده n رأس انجام می شود

الگوریتمهای موازی خط

با کار گیری پردازش موازی، چندین موضع پیکسلی را در طول مسیر خط می توان بصورت همزمان با تقسيم محاسبات بین پردازنده های گوناگون محاسبه کرد

روش اول

: پردازنده

تقسیم مسیر خط به افراز

را در جهت مثبت محور x ها افراز می کنیم

خطی با ضریب زاویه 0 < m < 1 و با رأس چپ

فاصله بین x های شروع افرازهای مجاور

(تقسيم صحيح)

slide20

x شروع برای افراز k ام 2,1,0 تا np-1

هر پردازنده مواضع پیکسلی زیر بازه منسوب به خود را با استفاده از مقدار پارامترتصمیم شروع مزبور و نقطه شروع محاسبه می کند

slide21

دایره

مجموعه نقاطی که همگی در فاصله داده شده r از نقطه مرکز

قرار دارند

از این معادله می توان برای محاسبه نقاط روی محیط دایره با برداشتن گامهایی بطول و احد در روی محور xها از تا و محاسبه مقادیر y از :

-محاسبات زیاد

-فواصل بین مواضع پیکسلی رسم شده یکنواخت نخواهد بود. (این مسئله را می توان با تعویض نقشهای x و y (گام برداشتن در جهت yها و محاسبه مقادیر برای xها) زمانی که ضریب زاویه دایره بیشتر از یک است بر طرف کرد )

slide22

استفاده از معادلات قطبی پارامتری

محاسبه نقاط روی مرز دایره با استفاده ز مختصات قطبی r و

-با بکارگیری اندازه گام زاویه ای ثابت، دایره ای با نقاط متساوی الفاصله بر روی محیط آن رسم خواهد شد.

-برای کاهش محاسبات می توان از فاصله زاویه ای بزرگتر بین نقاط روی محیط دایره استفاده کرد و آنها را بوسیله پاره خطهایی برای تقریب محیط دایره بهم وصل کرد(رسم چند ضلعي‌هاي منتظم)

قرار داد

-برای مرزی پیوسته تر در سیستم رستر، اندازه گام زاویه را می توان برابر

طول کمان= r .

-محاسبات مثلثاتی بکار رفته هنوز هم وقت گیر هستند

slide23

خاصیت تقارنی دایره

محاسبات را می توان با در نظر گرفتن خاصیت تقارنی دایره ها کاهش داد

تمامی مواضع پیکسلی بر روی محیط دایره را می توان فقط با محاسبه نقاط واقع در کمان از x = 0 تا x = y تولید کرد

slide24

الگوریتم نقطه میانی برای دایره (MidPoint Circle Algorithm)

-نمونه گیری در بازه های واحد انجام می شود و در هر مرحله نزدیک ترین موضع پیکسلی به مسیر دایره تعیین می شود

-الگوريتم را براي دايره‌اي به مرکز (0,0) و به شعاع r بدست مي‌آوريم و به راحتي براي دايره به هر مرکز دلخواه قابل گسترش است

-با توجه به تقارن در دايره کمان دایره از x = 0 تا x = yدر ربع اول توليد و سپس نقاط واقع در هفت اوکتانت دیگر را با استفاده از خاصیت تقارن بدست می آوریم

x = 0

-1<m<0

x = y

m=0

m=-1

slide25

مرحله k+1ام

يا

معيار تصميم‌گيري Pk=?

(xk+1=xk+1)

در مرحله kام پيکسل به درستي انتخاب شده است مي‌خواهيم تصميم بگيريم در مرحله k+1ام (xk+1=xk+1) کدام يک از دو پيکسل يا به دايره نزديکتر است؟

slide26

X2+y2=r2 fcircle(x,y) = X2+y2 - r2

اگر (x,y) داخل دایره باشد

اگر (x,y) روی مرز دایره باشد

اگر (x,y) خارج دایره باشد

پارامتر تصمیم برای این کار، تابع fcircle، ارزیابی شده در نقطه میانی این دوپیکسل خواهد بود

slide27

Pk<0  نقطه مياني داخل دايره  به مرز دايره نزديکتر است (xk+1,yk)

Pk>0  نقطه مياني خارج دايره  به مرز دايره نزديکتر است (xk+1,yk-1)

yk+1(y مرحله بعد)

slide28

-محاسبات Pk پيچيده مي‌باشد براي کم کردن محاسبات Pk+1 را با استفاده از معادلات نموي بدست مي‌آوريم ( )

=(yk-1)yمرحله بعد

Pk<0  yk+1 = yk

Pk>0  yk+1 = yk-1 

و

slide29

P0 =?

(برای r صحیح)

slide30

الگوریتم نقطة میانی برای دایره

1-شعاع r و مرکز دایره را وارد می کنیم سپس مختصات برای نخستین نقطه بر روی محیط دایره به مرکز مختصات را به صورت زیر قرار می دهیم

2-در هر موقعیت xkبا شروع از k = 0 آزمون زیر را انجام می دهیم. اگر Pk<0 نقطه بعدی بر روی دایره‌ي به مرکز (0,0) برابر است و داريم

در غیر این صورت، نقطة بعدی بر روی دایره برابر است و داریم

که در آن و

3-نقاط متقارن در هفت اوکتانت دیگر را تعیین می کنیم

  • 4-هر پیکسل محاسبه شدة (x,y) را به روی دایرة به مرکز منتقل می کنیم و مقادیر مختصات زیر را رسم می کنیم.

5-مراحل 2 تا 4 را آنقدر تکرار می کنیم تا شرط برقرار شد

slide32

مثال : دايره‌اي به شعاع r = 10

=(yk-1)y مرحله بعد

Pk<0  yk+1 = yk

Pk>0  yk+1 = yk-1 

slide33

بیضی

مکان هندسي بيضي: مجموع فواصل هر نقطه واقع در روي بيضي از دو نقطه ثابت به نام مراکز کانوني ثابت است.

a + b = constant

http://www.mathopenref.com/ellipse.html

F1=(x1,y1)

F2=(x2,y2)

slide34

معادله بيضي استاندارد که محورهاي آن موازي محورهاي مختصات به مرکز yc و xc به شعاع‌هاي rx و ry

معادله بيضي مرکز (0،0) :

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

slide35

بيضي در مختصات قطبی

تقارنی در بيضي برای کاهش محاسبات :

slide36

الگوریتم نقطه میانی برای بیضی (MidPoint Ellipse Algorithm)

يک چهارم بيضي را به کمک الگوريتم نقطه مياني شبيه آنچه بري دايره بدست آورديم توليد مي‌کنيم و باقي مانده به کمک تقارن توليد مي‌شود

-1<m<0

=شروع نقطه

-inf<m<-1

اگر (x,y) داخل بیضی باشد

اگر (x,y) روی بیضی باشد

اگر (x,y) خارج بیضی باشد

پارامتر تصميم(معيار تصميم گيري)

slide37

در ناحيه 1بيضي :

مرحله k+1ام

يا

معيار تصميم‌گيري P1k=?

(xk+1=xk+1)

در ناحيه 2بيضي :

مرحله k+1ام

يا

معيار تصميم‌گيري P2k=?

(yk+1=yk-1)

slide38

آزمون تشخيص خروج از ناحيه

(منهاي مشتق نسبت به x تقسيم بر مشتق نسبت به y)

m=

=-1

شرط خروج از ناحيه 1 (ورود به ناحيه 2)

در ناحيه 1بيضي :

مرحله k+1ام

يا

معيار تصميم‌گيري P1k =?

(xk+1=xk+1)

midpoint=(xk+1 , yk- 0.5)

slide39

P1k<0  نقطه مياني داخل بيضي به مرز بيضي نزديکتر است (xk+1,yk)

P1k>0  نقطه مياني خارج بيضي  به مرز بيضي نزديکتر است (xk+1,yk-1)

کم کردن محاسبات با محاسبه P1k+1:

P1k<0  yk+1=yk

P1k>0  yk+1=yk-1 

slide40

در ناحيه 2بيضي :

مرحله k+1ام

يا

معيار تصميم‌گيري P2k=?

(yk+1=yk-1)

midpoint=(xk+0.5 , yk-1)

slide41

P2k<0  نقطه مياني داخل بيضي به مرز بيضي نزديکتر است (xk+1,yk-1)

P2k>0  نقطه مياني خارج بيضي  به مرز بيضي نزديکتر است (xk,yk-1)

کم کردن محاسبات با محاسبه P2k+1:

P2k<0  xk+1=xk+1

P2k>0  xk+1=xk 

slide42

P2k= ?

(x0,y0) = آخرين موقعيت انتخاب شده در ناحيه 1

براي ساده شدن محاسبات p20 مي توان در ناحيه 2 در خلاف چرخش عقربه‌ ساعت و با شروع از (rx,0) و گام در جهت مثبت محور y تا رسيدن به ناحيه 1

slide44

/* Region 2 */

p = ROUND (Ry2 * (x+0.5) * (x+0.5) + Rx2 * (y-1) * (y-1) – Rx2 * Ry2);

while (y > 0) {

y--;

py -= twoRx2;

if (p > 0)

p += Rx2 – py;

else {

x++;

px += twoRy2;

p += Rx2 – py + px;

}

ellipsePlowPoints (xCenter, yCenter, x, y);

}

}

Void ellipsePlotPoints (intxCenter, intyCenter, int x, int y)

{

setPixel (xCenter + x, yCenter + y);

setPixel (xCenter – x, yCenter + y);

setPixel (xCenter + x, yCenter – y);

setPixel (xCenter – x, yCenter – y);

}

slide45

مثال: ترسیم بیضی به روش نقطه میانی

و

و

P1k<0  yk+1=yk

P1k>0  yk+1=yk-1 

برای ناحیة 1

حالا چون از ناحیة 1 خارج می شویم

slide46

برای ناحیة 2، نقطه شروع و پارامتر تصمیم شروع نیز برابر

P2k<0  xk+1=xk+1

P2k>0  xk+1=xk 

slide47

منحنی های دیگر (Other Curves)

روشی ساده برای نمایش منحنی، تقریب آن توسط پاره خطهاست

در جاهایی که قدر مطلق ضریب زاویه منحنی کوچکتر از یک است x را بعنوان متغیر مستقل انتخاب و مقادیر y را در نموهای x متساوی محاسبه می کنیم.

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

اکثر توابع منحنی دارای خاصیت تقارنی اند که می توان از این خاصیت برای کاهش محاسبات مواضع مختصات بر روی مسیر منحنی ها استفاده کرد

slide48

هذلولي

از تقارن استفاده مي کنيم و نيز منحني را به دو ناحيه (1) |m|<1و (2) |m|>1 تقسيم مي‌ کنيم

slide49

نویسه ها

قلم (فونت) : طرح و سبک کلی برای مجموعه ای از کاراکترها را

فونت نقش بیتی (یا فونت bitmapped) : قرار دادن الگویی از مقادیر دودویی در آرایه ای مستطیلی

فضاي ذخيره سازي بيشتر، هر تغييري در اندازه و فونت بايد در يک حافظه به نام فونت پنهان (font cache) ذخيره شود(براي دو برابر کردن اندازه نويسه تعداد پيکسلها نقش بيتي دو برابر شود)

B

slide50

فونت برون خطی (Outline font) : شکلهای نویسه ای توسط قطعه خطهای مستقیم و قطعه منحنی ها

فضاي ذخيره سازي کمتر، براي تغيير اندازه نويسه‌ها تعاريف منحني‌ها دستکاري مي‌شوند، پردازش فونت‌ها وقت‌گيرتر است

فونت‌ها

1- با سرکش (serif) : داراي خط هاي کوچک يا علائم نقطه گذاري در انتهاي نويسه‌هاي اصلي است

مانند Lotus, Times New Romanو . . .

کاربرد: خواناتر هستند و در متن‌هاي طولاني تر راحت تر خوانده مي‌شوند

2- بدون سرکش (sans serif) : خط هاي کوچک در انتهاي نويسه‌هاي وجود ندارد

مانند Tahoma

کاربرد:کلمات انفرادي،عنوان و برچسب گذاري، قابليت شناسايي بيشتر

AminZare

aminzare@cse.shirazu.ac.ir

Amin_zare@pnu.ac.ir

2011/04/19