Transcript Graphic

‫‪1‬‬
‫گرافیک کامپیوتری‬
‫‪2‬‬
‫گرافیک کامپیوتری‬
‫پروژه‬
‫امتحان پایانی‬
‫کارت‬
‫ویزیت‬
‫سربرگ‬
‫پوستر‬
‫آزاد‬
‫فلش‬
‫‪1.5‬‬
‫‪1.5‬‬
‫‪1.5‬‬
‫‪1.5‬‬
‫‪3‬‬
‫پوستر‪ ،‬کارت ویزیت‪ ،‬سربرگ‪ ،‬موضوع آزاد بوسیله فتوشاپ‬
‫‪3‬‬
‫‪8‬‬
‫سمینار‬
‫شفاهی‬
‫کتبی‬
‫‪3‬‬
‫‪3‬‬
‫‪ .1‬سمینارها بصورت گروهی است(تعداد اعضا گروه با توجه به موضوع تعیین می شود)‬
‫‪ .2‬به هر گروه موضوع مشخص ی بعنوان موضوع سمینار داده می شود( گروه ها می توانند در‬
‫صورت تمایل با توافق قبلی موضوع دیگری را انتخاب کنند)‬
‫‪ .3‬هر موضوع با توجه به میزان دشواری و حجم کار تاریخ مشخص ی دارد‬
‫‪ .4‬عدم حضور در تاریخ مشخص شده برای هر گروه به معنی عدم ارائه سمینار است‬
‫‪4‬‬
‫‪ .5‬در روز ارائه همه اعضا گروه باید حضور داشته باشند در صورت عدم حضور هر فرد نمره ارائه‬
‫شفاهی به آن شخص تعلق نخواهد گرفت‬
‫‪ .6‬در پایان ترم تمام گروه ها ملزم هستند که فایل های ‪Word, PowerPoint, PDF‬‬
‫مربوط به سمینار خود و فایل های مربوط به پروژه های خود را تا تاریخ مشخص شده تحویل‬
‫دهند (ترجیحا تمام گروه ها روی یک ‪ )CD‬عدم تحویل هر یک از فایل ها موجب کاهش بخش ی‬
‫از نمره ارائه کتبی و پروژه خواهد شد‬
‫‪ .7‬هرگروه ‪ 15‬تا ‪ 20‬دقیقه زمان برای ارائه شفاهی دارد‬
‫‪5‬‬
‫عنوان موضوع‬
‫تاریخ ارائه‬
‫گروه ارائه دهنده‬
‫‪1‬‬
‫دستگاه های ورودی‪-‬خروجی گرافیکی‬
‫‪5‬‬
‫‪2‬‬
‫مانیتورهای پالسما‪LED,LCD ،‬‬
‫‪4‬‬
‫‪3‬‬
‫بررس ی نرم افزارهای گرافیکی‬
‫‪7‬‬
‫‪4‬‬
‫واقیعت مجازی‬
‫‪3‬‬
‫‪5‬‬
‫پردازش تصویر‬
‫‪13‬‬
‫‪6‬‬
‫بررس ی انواع فایل های گرافیکی‬
‫‪11‬‬
‫‪7‬‬
‫توابع گرافیکی پاسکال و ‪C‬‬
‫‪12‬‬
‫‪8‬‬
‫‪Postscript‬‬
‫‪14‬‬
‫‪9‬‬
‫کارت های گرافیکی ‪VGA,SVGA,PCI‬‬
‫‪2‬‬
‫‪10‬‬
‫بررس ی کارت های گرافیکی موجود‬
‫‪8‬‬
‫‪6‬‬
‫عنوان موضوع‬
‫گروه ارائه دهنده‬
‫‪11‬‬
‫اصول گرافیکی در طراحی سایت‬
‫‪6‬‬
‫‪12‬‬
‫مانیتورهای ‪Touch Screen , Smart‬‬
‫‪1‬‬
‫‪13‬‬
‫آموزش نرم افزار فتوشاپ‬
‫‪9‬‬
‫‪14‬‬
‫آموزش نرم افزار فلش‬
‫‪10‬‬
‫‪15‬‬
‫بررس ی نحوه کارکرد دوربین های ترافیکی‬
‫‪16‬‬
‫نحوه کارکرد چراغ های هوشمند تقاطع خیابانها‬
‫‪17‬‬
‫نمایش های لیزری‬
‫‪7‬‬
‫تاریخ ارائه‬
‫‪8‬‬
‫گرافیک کامپیوتری‬
‫نقطه‬
‫کوچکترین واحد سازنده هر تصویری است یعنی جمع شدن نقطه ها به‬
‫میزان زیاد یک شکل را می سازد‪.‬‬
‫در گرافیک برای ما چه می کند؟‬
‫به تنهایی هیچ کار‪ ،‬ولی وقتی کنار هم قرار می گیرند اشکالی حاصل می‬
‫شود و ما از آن اشکال استفاده می کنیم‪.‬‬
‫‪9‬‬
‫گرافیک کامپیوتری‬
‫خط‬
‫نقطه ها اگر کنار هم قرار گیرند خط ساخته می شود‪.‬‬
‫انواع خط ‪:‬‬
‫خط شکسته یا زیگزاگ‬
‫خط صاف افقی‬
‫خط منحنی‬
‫خط تکه تکه‬
‫در گرافیک برای ما چه می کنند ؟‬
‫خیلی کارها اگر در جایی قرار گیرند باعث نظم وترتیب شدن آن قسمت می گردند‪.‬‬
‫‪10‬‬
‫گرافیک کامپیوتری‬
Display File
DPU (Display Processing Unit)
Monitor
‫گرافیک کامپیوتری‬
11
‫اطالعات مربوط به هر تصویربصورت یک‬
‫فایل در حافظه ذخیره می شوند‬
‫‪12‬‬
‫گرافیک کامپیوتری‬
‫واحد پردازش اطالعات فایل ذخیره شده در‬
‫حافظه که با اعمال تغییرات الزم باعث‬
‫نمایش تصویر مربوطه می شود‬
‫‪13‬‬
‫گرافیک کامپیوتری‬
‫طبقه بندی مانتیورها‬
‫• ‪ :Monochrome‬دو رنگ نمایش می دهند یک رنگ برای زمینه و‬
‫یک رنگ برای نمای نزدیکتر(‪)background and foreground‬‬
‫• ‪ : Gray-Scale‬یک نوع بخصوص از مانیتورهای تک رنگ که قادرند‬
‫سایه های متفاوتی از رنگ خاکستری را نمایش دهند‬
‫• ‪ : Color‬قادرند هرجایی از ‪ 16‬تا بیشتر از یک میلیون رنگ متفاوت را‬
‫نمایش دهند‪ .‬گاهی اوقات مانتیورهای ‪ RGB‬هم نامیده می شوند‬
1. CRT (Cathode Ray tube)
2. Storage CRT
3. Bean Penetration color CRT
4. Shadow Mask color CRT
5. Flat panel display
‫گرافیک کامپیوتری‬
15
‫اساس کار نمایشگرهای ‪ CRT‬المپ تصویر است‬
‫‪16‬‬
‫گرافیک کامپیوتری‬
‫صفحه فسفری‬
‫جهت دهنده‬
‫تفنگ الکترونی‬
‫اطالعات بوسیله ‪ DPU‬از ‪Display File‬خوانده می شوند و به ولتاژهای مناسب برای‬
‫تغییر میزان زاویه ‪Deflector‬ها تبدیل می شوند سپس الکترون از طریق تفنگ‬
‫الکترونی شلیک و بوسیله ‪ Focusing System‬بصورت پرتو باریکی به سطح صفحه‬
‫فسفری برخورد و باعث روشن شدن نقطه مورد نظر می شوند‬
‫‪17‬‬
‫گرافیک کامپیوتری‬
‫یک شبکه توری مانند در پشت سطح فسفری در مانیتور ‪CRT‬‬
‫یک توری (مش) در پشت صفحه فسفری الکترون را جذب و زمانی که انرژی صفحه‬
‫فسفری تمام می شود و نقطه محو می شود این توری با آزاد کردن انرژی الکترون را آزاد‬
‫می کند و باعث روشن شدن نقطه مورد نظر می شود‬
‫مزیت ‪:‬‬
‫• عدم نیاز به الیه های فسفری با قابلیت تحریک باالتر‬
‫عیب ‪:‬‬
‫• اگر نقطه دیگری بخواهد روشن شود ‪ ،‬نقطه قبلی نیز دوباره روشن می شود چون‬
‫الکترون جذب شده باید انرژی خود را آزاد کند و باعث روشن شدن نقطه ای اضافه‬
‫در صفحه نمایش می شود‬
‫‪18‬‬
‫گرافیک کامپیوتری‬
‫الیه های اضافه شده‬
‫•دو الیه فسفری با سطوح تحریک انرژی متفاوت‬
‫•هر الیه دارای انرژی مخصوص به خود است و با توجه به سطح انرژی مشخص‬
‫می شود‪ ،‬کدام الیه نقطه مورد نظر را روشن می کند‬
‫مختلف ایجاد شد‬
‫‪•19‬با دوالیه سبز و قرمز ‪ 4‬حالت‬
‫رنگی کامپیوتری‬
‫گرافیک‬
‫‪20‬‬
‫گرافیک کامپیوتری‬
‫بجای تغییر در الیه ها تفنگ الکترونی تغییر یافت و بجای یک تفنگ با یک رنگ سه تفنگ با رنگ های قرمز و‬
‫سبز و آبی در مانیتورها قرار داده شد‬
‫الکترون های شلیک شده از هریک از تفنگ ها از یکی از روزنه های ماسک (‪ ) Mask‬عبور و نقاط مختلف‬
‫بر روی صفحه نمایش را با رنگ ها مختلف روشن می کند‬
‫‪21‬‬
‫گرافیک کامپیوتری‬
‫‪Non emissive‬‬
‫غیر ساطع كننده(نور را تبدیل به یک طرح می کنند)‬
‫•‬
‫‪LCD Display‬‬
‫‪Emissive‬‬
‫ساطع كننده (انرژی الكتریكی را به نور تبدیل می کنند)‬
‫•‬
‫•‬
‫‪22‬‬
‫‪‬‬
‫‪LED‬‬
‫‪Plasma Panel Display‬‬
‫گرافیک کامپیوتری‬
‫‪‬‬
‫•در این نوع مانیتورها اصالا نور تابش نمی شود و فقط رنگ تغییر‬
‫می کند‬
‫• یک مانیتور ‪ LCD‬از دو صفحه موازی تشکیل شده است که هریک‬
‫از این دو صفحه دارای تعدادی الکترود می باشند که این الکترودها در‬
‫یک صفحه بصورت افقی و در صفحه دیگربصورت عمودی قرار‬
‫گرفته اند‬
‫• فاصله بین این دو صفحه موازی از ماده ای مایع که دارای ساختار‬
‫مولکولی کریستال می باشد تشکیل شده است‬
‫•وقتی دو الکترود افقی و عمودی دارای بار الکتریکی می شوند باعث‬
‫تغییر جهت کریستال های مایع شده و نقاط تالقی استوانه های کریستال‬
‫تغییر رنگ می دهد (نور از خود ساطع نمی کند)‬
‫•نور سفید رنگ ورودی در ابتدا بصورت عمودی پالریزه شده سپس‬
‫از میان استوانه های کریستال عبور کرده و تغییر رنگ می دهد سپس‬
‫بصورت افقی نیز پالریزه می شود و نقاط سطح صفحه نمایش را‬
‫روشن می کند‬
‫‪23‬‬
‫گرافیک کامپیوتری‬
Column electrode
Pixel
8 segments
Matrix
Row electrode
‫‪U‬‬
‫‪Светлина‬‬
‫‪25‬‬
‫گرافیک کامپیوتری‬
‫محیط بین الکترودها از ماده ای مایع مانند‬
‫تشکیل شده است اما کریستال ها بصورت‬
‫استوانه هایی هستند که خاصیت قطبی و حالت‬
‫جامد دارند‬
‫‪26‬‬
‫گرافیک کامپیوتری‬
‫•دوصفحه شیشه ای که در برابر هوا نفوذ ناپذیر هستند‬
‫•فاصله بین آنها توسط الیه های از هم مجزا شده است و بین آنها گازهایی مانند هلیوم ‪ ،‬نئون و گزنون‬
‫تزریق شده است‬
‫• با اعمال ولتاژ به قطب های هر سلول ‪ ،‬گاز دشارژ شده و تولید نور ‪ UV‬یا همان ماوراء بنفش نموده‬
‫• با برخورد نور ‪ UV‬به مواد فلوئورسان موجود در سلول (سبز ‪ ،‬آبی ‪ ،‬قرمز) یا همان ‪ RGB‬نور‬
‫مرئی و قابل رویت از سلول خارج می گردد‪.‬‬
‫•‬
‫‪27‬‬
‫گرافیک کامپیوتری‬
‫‪28‬‬
‫گرافیک کامپیوتری‬
‫آدرس ‪ x‬را خود نگه می دارد‬
‫‪Raster scan‬‬
‫‪generation‬‬
‫تنظیم یا افزایش آدرس‬
‫میزان تغییر‬
‫تنظیم یا افزایش آدرس‬
‫‪X register‬‬
‫آدرس ‪ Y‬را خود نگه می دارد‬
‫‪Y register‬‬
‫میزان شلیك‬
‫‪29‬‬
‫‪Pixel value‬‬
‫‪address‬‬
‫‪address‬‬
‫(مقداری كه از فایل خوانده)‪Data‬‬
‫گرافیک کامپیوتری‬
‫‪Computer‬‬
‫‪I/O BUS‬‬
‫‪Bitmap‬‬
‫‪Refresh‬‬
‫‪Buffer‬‬
X deflection
driver
x ‫مقدار‬
Computer
I/O port
Data
Display
file
X register
DTA*
Electron beam
On/off
DTA*
Y register
y‫مقدار‬
* Digital to Analog
‫مقادیر دیجیتال ذخیره شده در فایل را تبدیل به ولتاژ برای تنظیم‬
‫جهت دهنده ها استفاده می کند‬
‫گرافیک کامپیوتری‬
Y deflector
driver
30
Line Algorithm
DDA
Bresenham (Iteration Method)
Circle Algorithm
Mid Point
Bresenham
Ellipse Algorithm
‫گرافیک کامپیوتری‬
31
Line Algorithm
DDA (Digital Differential Analyzer)
Bresenham (Iteration Method)
‫گرافیک کامپیوتری‬
32
‫‪Line Attribute‬‬
‫معادله خط در حالت کلی‬
‫‪y2‬‬
‫‪y1‬‬
‫‪x2‬‬
‫‪ = ∆Y‬نسبت تغییرات در راستای ‪Y‬‬
‫‪ = ∆X‬نسبت تغییرات در راستای ‪X‬‬
‫‪33‬‬
‫گرافیک کامپیوتری‬
‫‪x1‬‬
‫‪DDA Line Algorithm‬‬
‫مبنای این الگوریتم براین اساس است که تغییرات در یک راستا را ثابت در نظر می گیرد و تغییرات‬
‫راستای دیگر را بوسیله معادله بدست می آورد‬
‫اما راستایی که تغییرات آن ثابت است در شرایط مختلف می تواند متفاوت باشد (‪ X‬یا ‪)Y‬‬
‫‪|m|<1  -1<m<1  |∆x| > | ∆y|  ∆x =1 ‬‬
‫‪∆y = |m | y2 – y1 =|m|  y2= |m| + y1‬‬
‫در این حالت چون نسبت تغییرات در راستای ‪ X‬بیشتر از نسبت تغییرات در راستای ‪ Y‬است‪ ،‬میزان تغییرات‬
‫راستای ‪ X‬را ثابت در نظر می گیریم و تغییرات در راستای ‪ Y‬را بدست می آوریم‬
‫در حالت کلی وقتی ‪ |m|<1‬نقاط خط مربوطه از روابط زیر بدست می آیند‬
‫‪∆x =1‬‬
‫|‪If 0≤m ≤1  Yk+1 = Yk + |m‬‬
‫|‪If -1≤m ≤ 0  Yk+1 = Yk - |m‬‬
‫‪34‬‬
‫گرافیک کامپیوتری‬
‫)‪m= (8-2) / (15-3‬‬
‫‪m =0.5 , 0<m<1‬‬
‫‪∆x =1‬‬
‫|‪Yk+1 = Yk + |m‬‬
‫با فرض اینکه ‪ X1=3 ,X2=15 ,Y1=2 ,Y2=8‬آنگاه داریم ‪:‬‬
‫‪13‬‬
‫‪12‬‬
‫‪11‬‬
‫‪10‬‬
‫‪9‬‬
‫‪8‬‬
‫‪7‬‬
‫‪6‬‬
‫‪5‬‬
‫‪4‬‬
‫‪3‬‬
‫‪2‬‬
‫‪1‬‬
‫‪K‬‬
‫‪15‬‬
‫‪14‬‬
‫‪13‬‬
‫‪12‬‬
‫‪11‬‬
‫‪10‬‬
‫‪9‬‬
‫‪8‬‬
‫‪7‬‬
‫‪6‬‬
‫‪5‬‬
‫‪4‬‬
‫‪3‬‬
‫‪X‬‬
‫‪8‬‬
‫‪7.5‬‬
‫‪7‬‬
‫‪6.5‬‬
‫‪6‬‬
‫‪5.5‬‬
‫‪5‬‬
‫‪4.5‬‬
‫‪4‬‬
‫‪3.5‬‬
‫‪3‬‬
‫‪2.5‬‬
‫‪2‬‬
‫‪Y‬‬
‫مقادیر را بصورت گرد شده‬
‫رسم می کنیم تا هریک درون‬
‫یک خانه قرار گیرند‬
‫‪35‬‬
‫گرافیک کامپیوتری‬
‫)‪m= (2-8) / (15-3‬‬
‫‪m = -0.5 , -1<m<0‬‬
‫‪∆x =1‬‬
‫|‪Yk+1 = Yk - |m‬‬
‫با فرض اینکه ‪ X1=3 ,X2=15 ,Y1=8 ,Y2=2‬آنگاه داریم ‪:‬‬
‫‪13‬‬
‫‪12‬‬
‫‪11‬‬
‫‪10‬‬
‫‪9‬‬
‫‪8‬‬
‫‪7‬‬
‫‪6‬‬
‫‪5‬‬
‫‪4‬‬
‫‪3‬‬
‫‪2‬‬
‫‪1‬‬
‫‪K‬‬
‫‪15‬‬
‫‪14‬‬
‫‪13‬‬
‫‪12‬‬
‫‪11‬‬
‫‪10‬‬
‫‪9‬‬
‫‪8‬‬
‫‪7‬‬
‫‪6‬‬
‫‪5‬‬
‫‪4‬‬
‫‪3‬‬
‫‪X‬‬
‫‪2‬‬
‫‪2.5‬‬
‫‪3‬‬
‫‪3.5‬‬
‫‪4‬‬
‫‪4.5‬‬
‫‪5‬‬
‫‪5.5‬‬
‫‪6‬‬
‫‪6.5‬‬
‫‪7‬‬
‫‪7.5‬‬
‫‪8‬‬
‫‪Y‬‬
‫الگوریتم ‪ DDA‬از نقطه ابتدایی‬
‫داده شده شروع و نقاط را بدست‬
‫می آورد تا به نقطه انتهایی داده‬
‫شده برسد‬
‫‪36‬‬
‫گرافیک کامپیوتری‬
‫‪DDA Line Algorithm‬‬
‫‪|m|>1  m < -1 or m >1  |∆x| < | ∆y|  ∆y =1 ‬‬
‫|‪∆x = 1/ |m|  x2 – x1 = 1/ |m|  x2= x1 + 1/ |m‬‬
‫در این حالت چون نسبت تغییرات در راستای ‪ Y‬بیشتر از نسبت تغییرات در راستای ‪ X‬است‪ ،‬میزان تغییرات‬
‫راستای ‪ Y‬را ثابت در نظر می گیریم و تغییرات در راستای ‪ X‬را بدست می آوریم‬
‫در حالت کلی وقتی ‪ |m|>1‬نقاط خط مربوطه از روابط زیر بدست می آیند‬
‫‪∆y =1‬‬
‫|‪If m ≥ 1  Xk+1 = Xk + 1/ |m‬‬
‫|‪If m ≥ -1  Xk+1 = Xk - 1/ |m‬‬
‫‪37‬‬
‫گرافیک کامپیوتری‬
‫)‪m= (10-2) / (7-3‬‬
‫‪m =2 , m >1‬‬
‫‪∆y =1‬‬
‫|‪Xk+1 = Xk + 1/|m‬‬
‫با فرض اینکه ‪ X1=3 ,X2=7 ,Y1=2 ,Y2=10‬آنگاه داریم ‪:‬‬
‫‪38‬‬
‫‪9‬‬
‫‪8‬‬
‫‪7‬‬
‫‪6‬‬
‫‪5‬‬
‫‪4‬‬
‫‪3‬‬
‫‪2‬‬
‫‪1‬‬
‫‪K‬‬
‫‪7‬‬
‫‪6.5‬‬
‫‪6‬‬
‫‪5.5‬‬
‫‪5‬‬
‫‪4.5‬‬
‫‪4‬‬
‫‪3.5‬‬
‫‪3‬‬
‫‪X‬‬
‫‪10‬‬
‫‪9‬‬
‫‪8‬‬
‫‪7‬‬
‫‪6‬‬
‫‪5‬‬
‫‪4‬‬
‫‪3‬‬
‫‪2‬‬
‫‪Y‬‬
‫گرافیک کامپیوتری‬
‫با فرض اینکه ‪ X1=7 ,X2=3 ,Y1=2 ,Y2=10‬آنگاه داریم ‪:‬‬
‫‪39‬‬
‫)‪m= (10-2) / (3-7‬‬
‫‪m = -2 , m < -1‬‬
‫‪∆y =1‬‬
‫|‪Xk+1 = Xk - 1/|m‬‬
‫‪9‬‬
‫‪8‬‬
‫‪7‬‬
‫‪6‬‬
‫‪5‬‬
‫‪4‬‬
‫‪3‬‬
‫‪2‬‬
‫‪1‬‬
‫‪K‬‬
‫‪3‬‬
‫‪3.5‬‬
‫‪4‬‬
‫‪4.5‬‬
‫‪5‬‬
‫‪5.5‬‬
‫‪6‬‬
‫‪6.5‬‬
‫‪7‬‬
‫‪X‬‬
‫‪10‬‬
‫‪9‬‬
‫‪8‬‬
‫‪7‬‬
‫‪6‬‬
‫‪5‬‬
‫‪4‬‬
‫‪3‬‬
‫‪2‬‬
‫‪Y‬‬
‫گرافیک کامپیوتری‬
BRESENHAM Line Algorithm
y = mx + b
Yk +1
d2
y
d1
Yk
Xk
Xk + 1
‫گرافیک کامپیوتری‬
40
‫داریم ‪y = m(Xk + 1) + b :‬‬
‫در نظر می گیریم ‪:‬‬
‫‪d1 = y – Yk = m(Xk +1) + b - Yk‬‬
‫] ‪d2 = (Yk +1) – y = (Yk + 1) – [ m(Xk + 1) + b‬‬
‫بنابراین خواهیم داشت ‪:‬‬
‫‪d1 - d2 = 2m (Xk + 1) – 2Yk + 2b – 1‬‬
‫توجه داریم كه ‪m = y / x :‬‬
‫‪41‬‬
‫گرافیک کامپیوتری‬
‫‪ Pk‬را بصورت زیر تعریف می كنیم ‪ Pk( :‬فاکتور تصمیم گیری)‬
‫‪Pk = x(d1 – d2) = 2 y Xk – 2 x Yk + c‬‬
‫) ‪(c= 2 y + 2bx -x‬‬
‫می توان ‪ Pk+1‬را بصورت زیر محاسبه نمود ‪:‬‬
‫‪Pk+1 = 2 y Xk+1 – 2 x Yk+1 + c‬‬
‫)‪Pk+1 – Pk = 2 y (Xk+1 – Xk) – 2 X (Yk+1 – Yk‬‬
‫با توجه به اینكه ‪:‬‬
‫‪Xk+1 = Xk + 1‬‬
‫خواهیم داشت‪:‬‬
‫)‪Pk+1 = Pk + 2 y – 2 X (Yk+1 – Yk‬‬
‫‪42‬‬
‫گرافیک کامپیوتری‬
‫بدین ترتیب فرمول بازگشتی ‪ Pk‬محاسبه می شود‪ .‬در این فرمول مقدار جمله ‪, Yk+1 – Yk‬‬
‫با توجه به عالمت ‪ , PK‬برابر صفر یا یك خواهد بود‪ .‬اگر ‪ PK‬منفی باشد برابر صفر ‪ ,‬و در‬
‫غیر اینصورت برابر ‪ 1‬جایگزین میشود‪.‬‬
‫‪Pk+1= Pk +2 y– 2 X‬‬
‫‪Pk+1= Pk +2 y‬‬
‫‪Yk+1 – Yk =1‬‬
‫‪Yk+1 – Yk =0‬‬
‫‪if PK > 0‬‬
‫‪if PK < 0‬‬
‫برای شروع الگوریتم مقدار اولیه بعنوان ‪ P0‬مورد نیاز می باشد‪ .‬این مقدار برابر خواهد بود‬
‫با ‪:‬‬
‫‪P0 = 2y – x‬‬
‫خالصه الگوریتم بصورت زیر خواهد بود ‪:‬‬
‫‪43‬‬
‫گرافیک کامپیوتری‬
‫الگوریتم ترسیم خط برزنهام برای ‪|m|< 1‬‬
‫‪ .1‬نقاط ابتدایی و انتهایی پاره خط را دریافت کن و نقطه ابتدایی را در)‪ (X0,Y0‬ذخیره کن‬
‫‪ .2‬اولین نقطه )‪ (X0,Y0‬را رسم کن‬
‫‪ .3‬مقادیر ثابت ‪ x , y , 2y‬و )‪ (2y - 2x‬را محاسبه و پارامترتصمیم اولیه را از‬
‫طریق ‪ P0 = 2y - x‬محاسبه کن‬
‫‪ .4‬در هر تکرار در اول خط با شروع ‪ k=0‬آزمون زیر را بررسی کن‬
‫اگر‪ Pk<0‬نقطه بعدی برابر با )‪ (Xk +1 , Yk‬بوده و‬
‫‪Pk +1 = Pk + 2y‬‬
‫در غیر اینصورت نقطه بعدی برابر با )‪ (Xk +1 , Yk +1‬بوده و‬
‫‪Pk+1 = Pk + 2y - 2x‬‬
‫‪ .5‬مرحله ‪ 4‬را به اندازه ‪ x‬بار تکرار کن‬
‫‪44‬‬
‫گرافیک کامپیوتری‬
‫مثال ‪ :‬با استفاده از روش تكراری ‪ Bresenham‬؛ مختصات نقاط تشكیل دهنده خطی كه از نقطه‬
‫)‪ (20,10‬تا نقطه )‪ (30,18‬رسم می شود را محاسبه كنید‪.‬‬
‫حل ‪:‬‬
‫‪x = 30-20=10 , y = 18-10=8 , 2y = 16 , 2y - 2x = -4‬‬
‫‪P0 = 2y - x = 16 – 10 = 6‬‬
‫)‪(Xk+1,Yk+1‬‬
‫‪45‬‬
‫‪K Pk‬‬
‫)‪(Xk+1,Yk+1‬‬
‫‪K Pk‬‬
‫)‪(26,15‬‬
‫)‪(27,16‬‬
‫‪6‬‬
‫‪2‬‬
‫‪5‬‬
‫‪6‬‬
‫)‪(21,11‬‬
‫)‪(22,12‬‬
‫‪6‬‬
‫‪2‬‬
‫‪0‬‬
‫‪1‬‬
‫)‪(28,16‬‬
‫)‪(29,17‬‬
‫)‪(30,18‬‬
‫‪-2‬‬
‫‪14‬‬
‫‪10‬‬
‫‪7‬‬
‫‪8‬‬
‫‪9‬‬
‫)‪(23,12‬‬
‫)‪(24,13‬‬
‫)‪(25,14‬‬
‫‪-2‬‬
‫‪14‬‬
‫‪10‬‬
‫‪2‬‬
‫‪3‬‬
‫‪4‬‬
‫گرافیک کامپیوتری‬
‫‪18‬‬
‫‪10‬‬
‫‪46‬‬
‫گرافیک کامپیوتری‬
‫‪30‬‬
‫‪20 21 22‬‬
Circle Algorithm
Mid Point (Bresenham)
‫گرافیک کامپیوتری‬
47
‫با مقداردهی های مختلف به ‪ XC‬مقادیر ‪ YC‬را بدست می آوریم‬
‫‪(X - XC)2+(Y-YC)2=R2‬‬
‫محاسبات زیاد برای بدست آوردن مقادیر برای ترسیم دایره‬
‫استفاده از روش قطبی‬
‫‪X = XC + R *COS θ‬‬
‫‪Y = YC + R *SIN θ‬‬
‫محاسبات زیاد می باشد‬
‫‪48‬‬
‫گرافیک کامپیوتری‬
MID POINT
( Bresenham Circle
Algorithm)
(Iteration Method)
Jack Bresenham worked
for 27 years at IBM
before entering
academia. Bresenham
developed his famous
algorithms at IBM in the
early 1960s
‫گرافیک کامپیوتری‬
49
‫با بدست آوردن نقاط در یک هشتم‬
‫دایره مابقی نقاط از طرق قرینه یابی‬
‫بدست می آیند‬
‫)‪(Y , X‬‬
‫)‪(-Y , X‬‬
‫)‪(-X , Y‬‬
‫)‪(X , Y‬‬
‫)‪(-X , -Y‬‬
‫)‪(X , -Y‬‬
‫)‪(-Y , X‬‬
‫‪50‬‬
‫گرافیک کامپیوتری‬
‫)‪(-Y , -X‬‬
‫‪X2+Y2=R2  Fcircle(X,Y)=X2+Y2-R2‬‬
‫‪Mid point‬‬
‫نقطه میانی‬
‫‪X=Xk+1‬‬
‫‪Y=Yk-1/2‬‬
‫‪ Pk =Fcircle(X,Y) ‬فاکتور تصمیم گیری‬
‫‪Pk = Fcircle (Xk+1, Yk-1/2)=(Xk+1)2+( Yk-1/2)2-R2‬‬
‫‪Yk‬‬
‫‪Yk-1‬‬
‫)‪IF Pk >=0 NEXT POINT (XK+1,YK-1‬‬
‫نقطه میانی خارج یا روی محیط دایره است‬
‫پس نقطه پایینی را باید انتخاب کنیم‬
‫)‪IF Pk <0 NEXT POINT (XK+1,YK‬‬
‫نقطه میانی در داخل دایره است پس نقطه‬
‫باالیی را باید انتخاب کنیم‬
‫‪Xk Xk+1‬‬
‫‪51‬‬
‫گرافیک کامپیوتری‬
PK+1=((XK+1)+1)2 + (YK+1 – 1/2)2 – R2
(XK+1=XK+1)
=((Xk+1)2 + 2(Xk+1) +1)) + (Y2k+1 – Yk+1 +1/4)- R2
‫ جمع و تفریق می کنیم‬YK,Y2K ‫طرفین را با‬
=((Xk+1)2 + 2(Xk+1) +1)) + (Y2k+1 – Yk+1 +1/4)- R2 –YK +YK +Y2K -Y2K
=(Xk+1)2 +(Y2K - YK +1/4 ) – R2 + 2(Xk+1) +1+ (Yk+1 – Yk) + (Y2k+1 – Y2k)
=(Xk+1)2 +( YK -1/2 )2 – R2 + 2(Xk+1) +1+ (Yk+1 – Yk) + (Y2k+1 – Y2k)
: ‫با توجه به اینکه‬
Pk = (Xk+1)2+( Yk-1/2)2-R2
PK+1= PK + 2(Xk+1) +1+ (Yk+1 – Yk) + (Y2k+1 – Y2k)
‫گرافیک کامپیوتری‬
52
IF Pk >=0 NEXT POINT (XK+1,YK-1)
 YK+1- YK=(YK - 1) – YK =1
PK+1= PK + 2(Xk+1) +1+ (Yk+1 – Yk) + (Y2k+1 – Y2k)
= PK + 2(Xk+1) +1- (Yk -1 – Yk) + ((Yk -1) 2 – Y2k)
= PK + 2(Xk+1) +1+1+ (-2Yk +1)
IF PK >=0  PK+1= PK + 2(Xk+1) – 2(Yk+1)+1, (Yk+1= Yk -1)
IF Pk <0 NEXT POINT (XK+1,YK)
 YK+1- YK=YK – YK =0
PK+1= PK + 2(Xk+1) +1- (Yk+1 – Yk) + (Y2k+1 – Y2k)
IF PK < 0  PK+1= PK + 2(Xk+1)+1
‫گرافیک کامپیوتری‬
53
‫با مقداردهی اولیه به فاکتور‬
‫تصمیم گیری ‪:‬‬
‫‪Pk = (Xk+1)2+( Yk-1/2)2-R2‬‬
‫)‪( X0, Y0)=(0,R‬‬
‫‪P0 =(0+1)2 + (R-1/2)2 – R2‬‬
‫‪P0 =5/4 – R= 1- R‬‬
‫در حالت‬
‫کلی‬
‫‪IF PK >=0  PK+1= PK + 2(Xk+1) – 2(Yk+1)+1‬‬
‫‪IF PK < 0  PK+1= PK + 2(Xk+1)+1‬‬
‫‪P0 =5/4 – R= 1- R‬‬
‫‪54‬‬
‫گرافیک کامپیوتری‬
‫‪ .1‬مختصات مرکز دایره (‪ )XC , YC‬و شعاع را دریافت کن ‪.‬دایره ای به شعاع ‪ R‬فوق در‬
‫)‪)XC , YC( = (0, R‬‬
‫مرکز محور مختصات دارای نقطه شروع زیر است‬
‫‪ .2‬مقدار اولیه فاکتور تصمیم گیری را از رابطه زیر بدست آورید‬
‫‪ .3‬به ازاء هر موقعیت ‪ XK‬با شروع از ‪ K=0‬آزمون زیر را انجام دهید‬
‫‪P0=5/4 -R = 1- R‬‬
‫• اگر ‪ PK < 0‬نقطه بعدی برابر با (‪ )Xk+1 , Yk‬خواهد بود و‬
‫‪PK+1 = PK + 2Xk+1 + 1‬‬
‫•‬
‫در غیر اینصورت ‪ PK >=0‬نقطه بعدی برابر با (‪ )Xk+1 , Yk -1‬خواهد بود و‬
‫‪PK+1= PK + 1 + 2Xk+1 – 2Yk+1‬‬
‫همچنین ‪ 2Yk+1 =2YK – 2‬و ‪2Xk+1 = 2Xk +2‬‬
‫‪ .4‬موقیعت نقاط هفت ناحیه دیگر را با استفاده از قرینه یابی بدست آورید‬
‫‪ .5‬نقاط بدست آمده را به موقیعت اصلی دایره به مرکز (‪ )XC , YC‬انتقال دهید‬
‫‪,Y=Y+ YC‬‬
‫کامپیوتری‬
‫تکرار کنید‬
‫گرافیکاست‬
‫‪55 .6‬مراحل ‪ 3‬تا ‪ 5‬را تا وقتی ‪ X≥Y‬برقرار‬
‫‪X=X+XC‬‬
‫مثال ‪ :‬با استفاده از روش تكراری ‪ Bresenham‬؛ مختصات نقاط تشكیل دهنده دایره ای با مرکز )‪(0, 0‬‬
‫و نقطه شروع )‪ (0, 10‬و شعاع ‪ 10‬بدست آورید‪.‬‬
‫حل ‪X0= 0 , Y0= 10 , R=10 :‬‬
‫‪2X0=0 , 2Y0=20‬‬
‫‪P0 = 1- R = 1- 10= -9‬‬
‫‪56‬‬
‫‪2Yk+1‬‬
‫‪2Xk+1‬‬
‫)‪(Xk+1,Yk+1‬‬
‫‪Pk‬‬
‫‪K‬‬
‫‪20‬‬
‫‪2‬‬
‫)‪(1,10‬‬
‫‪-9‬‬
‫‪0‬‬
‫‪20‬‬
‫‪4‬‬
‫)‪(2,10‬‬
‫‪-6‬‬
‫‪1‬‬
‫‪20‬‬
‫‪6‬‬
‫)‪(3,10‬‬
‫‪-1‬‬
‫‪2‬‬
‫‪18‬‬
‫‪8‬‬
‫)‪(4,9‬‬
‫‪6‬‬
‫‪3‬‬
‫‪18‬‬
‫‪10‬‬
‫)‪(5,9‬‬
‫‪-3‬‬
‫‪4‬‬
‫‪16‬‬
‫‪12‬‬
‫)‪(6,8‬‬
‫‪8‬‬
‫‪5‬‬
‫‪14‬‬
‫‪14‬‬
‫)‪(7,7‬‬
‫‪5‬‬
‫‪6‬‬
‫گرافیک کامپیوتری‬
‫‪10‬‬
‫‪9‬‬
‫‪8‬‬
‫‪7‬‬
‫‪6‬‬
‫‪5‬‬
‫‪4‬‬
‫‪3‬‬
‫‪2‬‬
‫‪1‬‬
‫‪7 8 9 10‬‬
‫‪57‬‬
‫گرافیک کامپیوتری‬
‫‪3 4 5 6‬‬
‫‪1 2‬‬
Ellipse Algorithm
Mid point (Bresenham)
‫گرافیک کامپیوتری‬
58
‫شعاع اصلی‬
‫)‪(X,Y‬‬
‫شعاع فرعی‬
‫)‪(-X,Y‬‬
‫‪RY‬‬
‫‪RX‬‬
‫)‪(X,-Y‬‬
‫)‪(-X, -Y‬‬
‫‪Y‬‬
‫‪d1‬‬
‫)‪P=(X,Y‬‬
‫‪d2‬‬
‫‪F1‬‬
‫)مقدار ثابت( ‪d1 +d2 = CONSTANT‬‬
‫‪F2‬‬
‫‪X‬‬
‫‪59‬‬
‫گرافیک کامپیوتری‬
‫با بدست آوردن فواصل ‪: d1 , d2‬‬
‫‪Ax2 + By2 + Cxy + Dx + Ey + F = 0‬‬
‫با جایگذاری نقاط کانونی می توان نقاط را بدست آورده و آنها را ترسیم کنیم‪.‬‬
‫‪Y‬‬
‫‪Ry‬‬
‫‪YC‬‬
‫)‪P=(X,Y‬‬
‫‪Rx‬‬
‫‪X= XC + RX COS θ‬‬
‫‪X‬‬
‫‪60‬‬
‫‪XC‬‬
‫گرافیک کامپیوتری‬
‫‪Y= YC + RY SIN θ‬‬
‫در صورتی که بیضی را از مرکز مختصات رسم کنیم‬
‫‪XC=0 ,YC=0‬‬
‫فاکتور تصمیم گیری برای بیضی‬
‫‪Fellipse(X,Y)= x2r2y + y2r2x – r2xr2y‬‬
‫‪61‬‬
‫گرافیک کامپیوتری‬
‫‪>0‬‬
‫)‪ (x,y‬خارج مرز بیضی است‬
‫‪Fellipse(X,Y)= x2r2y + y2r2x – r2xr2y‬‬
‫‪=0‬‬
‫)‪ (x,y‬بر روی مرز بیضی است‬
‫‪<0‬‬
‫)‪ (x,y‬داخل مرز بیضی است‬
‫)‪Fellipse(X,Y‬‬
‫برای هر ناحیه یک الگوریتم نقطه‬
‫میانی بدست می آوریم‬
‫‪1‬‬
‫در ناحیه اول تغییرات ‪ X‬ثابت و نقطه میانی را‬
‫بین ‪ Yk , Yk-1‬در نظر می گیریم‬
‫در ناحیه دوم تغییرات ‪ Y‬ثابت و نقطه میانی را بین‬
‫‪ Xk , Xk+1‬در نظر می گیریم‬
‫‪62‬‬
‫گرافیک کامپیوتری‬
‫‪2‬‬
‫‪rx‬‬
‫‪ry‬‬
Mid point
‫نقطه میانی‬
X=Xk+1
Y=Yk-1/2
Yk
Yk-1
Xk Xk+1
P1K =Fellipse (Xk+1,Yk-1/2) = r2Y (Xk+1)2 + r2X(Yk-1/2)2 – r2Xr2Y
P1K+1 =Fellipse (Xk+1+1,Yk+1-1/2) = r2Y [(Xk+1)+1]2 + r2X(Yk+1-1/2)2 – r2Xr2Y
= r2Y [(Xk+1)2+ 2 (Xk+1) +1] + r2X [Y2k+1 - Yk+1 +1/4 ] – r2Xr2Y ± Y k ±Y2k
= r2Y (Xk+1)2 + r2X [Y2k - Yk +1/4] – r2Xr2Y +
2 r2Y (Xk+1) + r2Y + r2X [(Yk+1-1/2)2- (Yk-1/2)2]
= P1K + 2 r2Y (Xk+1) + r2Y + r2X [(Yk+1-1/2)2- (Yk-1/2)2]
‫گرافیک کامپیوتری‬
63
IF P1k >=0 NEXT POINT (XK+1,YK-1)
 YK+1=YK – 1
P1K+1= P1K + 2 r2Y (Xk+1) + r2Y -2 r2x(YK-1)
=P1K + 2 r2Y (Xk+1) + r2Y -2 r2x(YK-1)
IF P1K >=0  P1K+1= P1K + 2 r2Y (Xk+1) + r2Y -2 r2x(YK-1)
IF P1k <0 NEXT POINT (XK+1,YK)
 YK+1 =YK
P1K+1= P1K + 2 r2Y (Xk+1) + r2Y
IF P1K < 0  P1K+1= P1K + 2 r2Y (Xk+1) + r2Y
‫گرافیک کامپیوتری‬
64
If
X0=0 ,Y0=ry
P1 K=Fellipse (Xk+1,Yk-1/2) = r2Y (Xk+1)2 + r2X(Yk-1/2)2 – r2Xr2Y
P10 =Fellipse (X0+1,Y0-1/2) = Fellipse (1, ry -1/2)
= r2Y (1)2 + r2X(ry-1/2)2 – r2Xr2Y = r2Y + r2X(ry-1/2)2 – r2Xr2Y
‫مقدار اولیه برای فاکتور تصمیم گیری برای ناحیه اول‬
P10= r2Y - r2xry +(1/4) r2x
‫گرافیک کامپیوتری‬
65
Mid point
‫نقطه میانی‬
X=Xk+1 /2
Y=Yk-1
Yk
Yk-1
Xk Xk+1
P2K =Fellipse (Xk+1/2,Yk-1) = r2Y (Xk+1/2)2 + r2X(Yk-1)2 – r2Xr2Y
P2K+1 =Fellipse (Xk+1+1/2,Yk+1-1) = r2Y (Xk+1/2)2 + r2X[(Yk-1)-1]2 – r2Xr2Y
= P2K -2 r2X (Yk-1) + r2X + r2Y [(Xk+1 +1/2)2 – (Xk +1/2)2 ]
‫گرافیک کامپیوتری‬
66
IF P2k >0 NEXT POINT (XK,YK-1)
 XK+1=XK
P2K+1= P2K -2 r2x(YK+1)+ r2x
IF P2k <=0 NEXT POINT (XK+1,YK-1)
 XK+1 =XK+1
P2K+1= P2K + 2r2y (Xk+1) -2 r2x(YK+1)+ r2x
‫گرافیک کامپیوتری‬
67
‫در ناحیه دوم نقطه ابتدایی همان نقطه انتهایی ناحیه اول است‬
‫) ‪( X0,Y0‬‬
‫‪P2K =Fellipse (Xk+1/2,Yk-1) = r2Y (Xk+1/2)2 + r2X(Yk-1)2 – r2Xr2Y‬‬
‫‪P20 = Fellipse (X0+1/2,Y0-1) = r2Y (X0+1/2)2 + r2X(Y0-1)2 – r2Xr2Y‬‬
‫مقدار اولیه برای فاکتور تصمیم گیری برای ناحیه دوم‬
‫‪P20 = r2Y (X0+1/2)2 + r2X(Y0-1)2 – r2Xr2Y‬‬
‫‪68‬‬
‫گرافیک کامپیوتری‬
‫الگوریتم ترسیم بیضی به روش نقطه میانی‬
‫‪ ‬پارامترهای ‪ rx ,ry‬و مرکز بیضی (‪ )x0,y0‬را دریافت کرده و اولین نقطه واقع بر روی مسیر بیضی‬
‫با مرکزیت مبدا مختصات را بصورت زیر تعیین می کنیم‪:‬‬
‫)‪(x0,y0)=(0,ry‬‬
‫‪‬مقدار اولیه فاکتور تصمیم گیری در ناحیه اول را بصورت زیر بدست می آوریم‪:‬‬
‫‪P10= r2Y - r2xry +(1/4) r2x‬‬
‫‪‬با شروع از ‪ k=0‬به ازاء هر موقیعت ‪ XK‬در ناحیه اول تست زیر را انجام می دهیم ‪:‬‬
‫‪  P1K+1= P1K + 2 r2Y (Xk+1) + r2Y‬بوده )‪ (XK+1,YK‬نقطه بعدی ‪ P1k <0 ‬اگر‬
‫در غیر اینصورت‬
‫)‪(XK+1,YK-1‬نقطه بعدی ‪IF P1k >=0 ‬‬
‫در حالیکه‬
‫)‪ P1K+1= P1K + 2 r2Y (Xk+1) + r2Y -2 r2x(YK+1‬‬
‫‪2 r2Y (Xk+1)= 2 r2Y Xk + 2 r2Y , 2 r2x(YK+1)= 2 r2xYK - 2 r2x‬‬
‫گرافیک‬
‫کامپیوتری یابد‬
‫ادامه می‬
‫این‪69‬روند تا زمانیکه ‪ 2 r2Y X ≥ 2 r2xY‬است‬
‫‪‬آخرین مقدار بدست آمده در ناحیه اول ‪ ،‬مقدار اولیه شروع در ناحیه دوم است‪.‬‬
‫)‪(X0 ,Y0‬‬
‫‪P20 = r2Y (X0+1/2)2 + r2X(Y0-1)2 – r2Xr2Y‬‬
‫‪‬با شروع از ‪ k=0‬به ازاء هر موقیعت ‪ Yk‬در ناحیه دوم آزمون زیر را انجام می دهیم‪:‬‬
‫‪ (XK,YK-1)  P2K+1= P2K -2 r2x(YK+1)+ r2x‬نقطه بعدی ‪IF P2k >0 ‬‬
‫‪ (XK+1,YK-1) ‬نقطه بعدی ‪ IF P2k <=0 ‬در غیر اینصورت‬
‫در حالیکه‬
‫‪P2K+1= P2K + 2r2y (Xk+1) -2 r2x(YK+1)+ r2x‬‬
‫‪2 r2x(YK+1)= 2 r2xYK - 2 r2x‬‬
‫‪,‬‬
‫‪2 r2Y (Xk+1)= 2 r2Y Xk + 2 r2Y‬‬
‫‪‬نقاط قرینه در سه ربع دیگر را بدست می آوریم‬
‫‪‬حال هر نقطه را به نقطه اصلی خود انتقال می دهیم‬
‫‪X=X+Xc , Y=Y+ Yc‬‬
‫‪‬مراحل مربوط به ناحیه دوم را تا زمانیکه ) ‪( Y=0 and X= rx‬برقرار است تکرار می کنیم‬
‫‪70‬‬
‫گرافیک کامپیوتری‬
‫مثال ‪rx= 8, ry =6 :‬‬
‫حل ‪:‬‬
‫)‪(X0,Y0) =(0 ,6‬‬
‫‪P10= r2Y - r2xry +(1/4) r2x= - 332‬‬
‫)‪2 r2x(YK+1‬‬
‫)‪2r2y (Xk+1‬‬
‫)‪(Xk+1,Yk+1‬‬
‫‪P1k‬‬
‫‪K‬‬
‫‪768‬‬
‫‪72‬‬
‫)‪(1,6‬‬
‫‪-332‬‬
‫‪0‬‬
‫‪768‬‬
‫‪144‬‬
‫)‪(2,6‬‬
‫‪-224‬‬
‫‪1‬‬
‫‪768‬‬
‫‪216‬‬
‫)‪(3,6‬‬
‫‪-44‬‬
‫‪2‬‬
‫‪640‬‬
‫‪288‬‬
‫)‪(4,5‬‬
‫‪208‬‬
‫‪3‬‬
‫‪640‬‬
‫‪360‬‬
‫)‪(5,5‬‬
‫‪-108‬‬
‫‪4‬‬
‫‪512‬‬
‫‪432‬‬
‫)‪(6,4‬‬
‫‪288‬‬
‫‪5‬‬
‫‪384‬‬
‫‪504‬‬
‫)‪(7,3‬‬
‫‪244‬‬
‫‪6‬‬
‫با رسیدن به شرط ‪ 2 r2Y X ≥ 2 r2xY‬از ناحیه اول خارج می شویم‬
‫‪71‬‬
‫گرافیک کامپیوتری‬
‫ازآخرین نقطه در ناحیه اول برای بدست آوردن مقدار اولیه فاکتور تصمیم گیری در ناحیه دوم استفاده می کنیم‬
‫)‪(X0 ,Y0)= (7 ,3‬‬
‫‪P20 = r2Y (X0+1/2)2 + r2X(Y0-1)2 – r2Xr2Y = -151‬‬
‫‪72‬‬
‫)‪2 r2x(YK+1‬‬
‫)‪2r2y (Xk+1‬‬
‫)‪(Xk+1,Yk+1‬‬
‫‪P2k‬‬
‫‪K‬‬
‫‪256‬‬
‫‪576‬‬
‫)‪(8,2‬‬
‫‪-332‬‬
‫‪0‬‬
‫‪128‬‬
‫‪576‬‬
‫)‪(8,1‬‬
‫‪-224‬‬
‫‪1‬‬
‫‪--‬‬
‫‪--‬‬
‫)‪(8,0‬‬
‫‪-44‬‬
‫‪2‬‬
‫گرافیک کامپیوتری‬
‫‪10‬‬
‫‪9‬‬
‫‪8‬‬
‫‪7‬‬
‫‪6‬‬
‫‪5‬‬
‫‪4‬‬
‫‪3‬‬
‫‪2‬‬
‫‪1‬‬
‫‪0‬‬
‫‪7 8 9 10‬‬
‫‪73‬‬
‫گرافیک کامپیوتری‬
‫‪3 4 5 6‬‬
‫‪0 1 2‬‬
‫‪74‬‬
‫گرافیک کامپیوتری‬
‫اصول پرکردن نواحی‬
Interior-defined region
‫گرافیک کامپیوتری‬
Boundary-defined region75
‫روش های پرکردن نواحی‬
‫‪ ‬رنگ نمودن فاصله بین دو مرز محدوده‬
‫‪ ‬رنگ کردن نقاط همجوار یک محدوده‬
‫‪76‬‬
‫گرافیک کامپیوتری‬
‫‪ - 1‬رن گ ن مود ن ف اصل ه ب ی ن دو م رز م ح دود ه‬
‫)‪(Scan-Line Fill Algorithm‬‬
‫‪ .1‬محاسبه نقاط تقاطع خط پویش با اضالع‬
‫چندضلعی‬
‫‪ .2‬مرتب سازی نقاط بدست آمده بصورت صعودی‬
‫بر حسب ‪X‬‬
‫‪ .3‬نقاطی که در درون مرز بسته قرار دارند و بین‬
‫زوج نقاط تقاطعی واقع شدند را با رنگ مورد‬
‫نظر پر کن‬
‫‪77‬‬
‫گرافیک کامپیوتری‬
‫چگونه متوجه شویم نقطه داخل م ح دود ه است؟‬
‫)‪(Parity-Fill Approach‬‬
‫‪B‬‬
‫‪C‬‬
‫‪Parity‬‬
‫‪0 = even‬‬
‫‪1 = odd‬‬
‫‪F‬‬
‫‪D‬‬
‫‪1‬‬
‫‪0‬‬
‫‪A‬‬
‫‪78‬‬
‫‪E‬‬
‫گرافیک کامپیوتری‬
‫‪Parity‬‬
‫اگر تعداد نقاط تقاطع فرد باشد (دارای ‪ )Parity=Odd‬برای تشخیص نقطه میانی‬
‫محیط چندضلعی را بصورت معکوس (در خالف جهت عقربه های ساعت )پیمایش‬
‫می کنیم ‪ ،‬اگر در اطراف نقطه شیب یکنواخت نباشد نقطه را به عنوان یک نقطه‬
‫تقاطع که دو طرف آن باید رنگ شود در نظر می گیریم‬
‫‪79‬‬
‫گرافیک کامپیوتری‬
‫‪ - 2‬رن گ ک رد ن نق اط ه م جوا ر ی ک م ح دود ه‬
‫‪Boundary-Fill Algorithm‬‬
‫این الگوریتم با این فرض عمل می کند‬
‫که حداقل یک نقطه داخل محدوده‬
‫شناخته شده است‬
‫‪4 Connected ‬‬
‫‪8 Connected ‬‬
‫‪80‬‬
‫گرافیک کامپیوتری‬
‫با استفاده از روش‬
‫اتصال چهارجانبه‬
‫رنگ نمی شود‬
‫‪4-connected ‬‬
‫تنها نقاط در چهار جهت اصلی رنگ می شوند‬
‫‪81‬‬
‫گرافیک کامپیوتری‬
‫با استفاده از روش‬
‫اتصال هشت جانبه‬
‫رنگ می شود‬
‫‪8-connected ‬‬
‫تمام نقاط در اطراف نقطه اصلی رنگ می شوند‬
‫‪82‬‬
‫گرافیک کامپیوتری‬
 Scale
Rotate
Translate
 Shear
Reflection
‫گرافیک کامپیوتری‬
83
2D Modeling Transformations
Modeling
Coordinates
Scale
Translate
y
x
Scale
Rotate
Translate
World Coordinates
‫گرافیک کامپیوتری‬
84
2D Modeling Transformations
Modeling
Coordinates
y
x
Initial location
at (0, 0) with
x- and y-axes
aligned
‫گرافیک کامپیوتری‬
85
2D Modeling Transformations
Modeling
Coordinates
y
x
Scale .3, .3
Rotate -90
Translate 5, 3
‫گرافیک کامپیوتری‬
86
2D Modeling Transformations
Modeling
Coordinates
y
x
Scale .3, .3
Rotate -90
Translate 5, 3
‫گرافیک کامپیوتری‬
87
2D Modeling Transformations
Modeling
Coordinates
y
x
Scale .3, .3
Rotate -90
Translate 5, 3
World Coordinates
‫گرافیک کامپیوتری‬
88
‫• هر یک از اعضا را در یک مقیاس ضرب کنیم‬
‫‪2‬‬
‫‪89‬‬
‫گرافیک کامپیوتری‬
‫مقیاس گذاری مشابه ‪ :‬تمام اجزا دارای یک مقیاس مشابه هستند‬
‫‪Uniform scaling‬‬
‫‪Non-uniform scaling‬‬
‫مقیاس گذاری نامشابه ‪ :‬هر یک از اجزا دارای مقیاس بخصوصی است‬
‫‪X  2,‬‬
‫‪Y  0.5‬‬
‫‪90‬‬
‫گرافیک کامپیوتری‬
‫عملیات مقیاس‬
‫گذاری‬
‫‪91‬‬
‫گرافیک کامپیوتری‬
(x’, y’)
(x, y)

x’ = x cos() - y sin()
y’ = x sin() + y cos()
‫گرافیک کامپیوتری‬
92
(x’, y’)
(x, y)
f
x = r cos (f)
y = r sin (f)
x’ = r cos (f + )
y’ = r sin (f + )
x’ = r cos(f) cos() – r sin(f) sin()
y’ = r sin(f) cos() + r cos(f) sin()
x’ = x cos() - y sin()
y’ = x sin() + y cos()
‫گرافیک کامپیوتری‬
93
‫• فرم ماتریسی دوران‬
‫• اگرچه توابع )‪ sin(‬و )‪ cos(‬توابع غیرخطی از‪ ‬هستند‬
‫اما ‪:‬‬
‫– ’‪ X‬و’‪ Y‬ترکیب خطی از ‪ x,y‬هستند‬
‫‪94‬‬
‫گرافیک کامپیوتری‬
‫‪tx = 2‬‬
‫‪ty = 1‬‬
‫‪95‬‬
‫گرافیک کامپیوتری‬
‫تغییر یک بعد به نسبتی از بعد دیگر‬
‫‪96‬‬
‫گرافیک کامپیوتری‬
‫‪ ‬برای انجام هر تغییری در ابتدا باید شکل را به مبدا مختصات انتقال سپس‬
‫اعمال الزم را بر روی آن انجام و در نهایت آن را به مکان اولیه انتقال داد‬
‫‪X +(-2),‬‬
‫)‪Y +(-1‬‬
‫‪97‬‬
‫گرافیک کامپیوتری‬
X  2,
Y  0.5
X + 2,
Y+1
Translate + Scale + Translate
‫تبدیل به ماتریس‬
T(-2,-1)*S(2,0. 5)*T(2,1)
‫گرافیک کامپیوتری‬
98
‫‪ ‬با انجام یک تبدیل مختصات نقطه نهایی را بدست آوریم (برنامه نویسی راحت تر)‬
‫‪99‬‬
‫گرافیک کامپیوتری‬
‫بیان مختصات نقاط در قالب مختصات متجانس ‪:‬‬
‫امکان ارائه کلیه معادالت تبدیالت هندسی بصورت ضرب ماتریسی‬
‫‪100‬‬
‫گرافیک کامپیوتری‬
‫انتقال معکوس‬
‫‪101‬‬
‫گرافیک کامپیوتری‬
‫دوران معکوس‬
‫‪102‬‬
‫گرافیک کامپیوتری‬
‫مقیاس گذاری معکوس‬
‫‪103‬‬
‫گرافیک کامپیوتری‬
‫انجام یک سری تبدیالت یکسان و پشت سرهم‬
‫‪ (1‬انتقال توأم‬
‫‪ (2‬دوران توأم‬
‫‪ (3‬مقیاس گذاری توأم‬
‫‪104‬‬
‫گرافیک کامپیوتری‬
‫‪105‬‬
‫گرافیک کامپیوتری‬
‫‪Tx =2‬‬
‫‪Ty =1‬‬
‫‪Tx =3‬‬
‫‪Ty =2‬‬
‫‪106‬‬
‫‪Tx =2+3‬‬
‫‪Ty =1+2‬‬
‫گرافیک کامپیوتری‬
‫‪107‬‬
‫گرافیک کامپیوتری‬
‫‪R(Θ ) = 45‬‬
‫‪R(Θ ) = 90‬‬
‫‪R(Θ ) = 45‬‬
‫‪108‬‬
‫گرافیک کامپیوتری‬
‫‪109‬‬
‫گرافیک کامپیوتری‬
‫‪Sx =2‬‬
‫‪Sy =1‬‬
‫‪Sx =1‬‬
‫‪Sy =2‬‬
‫‪110‬‬
‫‪Sx =2*1‬‬
‫‪Sy =1*2‬‬
‫گرافیک کامپیوتری‬
‫تبدیالت غیر مشابه و پشت سرهم‬
‫‪ ‬استفاده از خواص ماتریس ها برای بدست آوردن ماتریس تبدیل نهایی‬
‫‪‬ضرب ماتریس های تبدیل و بدست آوردن یک ماتریس تبدیل‬
‫‪‬عدم تغییر در ترتیب تبدیل ها‬
‫‪111‬‬
‫گرافیک کامپیوتری‬
‫}]]‪P’ = { T( tx , ty ) .[ R( Θ ). [T(- tx , -ty ) . P‬‬
‫با استفاده از خاصیت انجمنی ضرب ماتریس ها ‪:‬‬
‫)‪A.B.C=(A.B).C =A.(B.C‬‬
‫)‪P = (x,y‬‬
‫‪112‬‬
‫‪,‬‬
‫‪P’ = {T( tx , ty ) . R( Θ ). T(- tx , -ty )} . P‬‬
‫گرافیک کامپیوتری‬
‫‪a‬‬
‫)‪T(-3) R(45) T(3‬‬
‫‪a‬‬
‫)‪T(-3‬‬
‫)‪R(45‬‬
‫)‪T(3‬‬
‫‪113‬‬
‫گرافیک کامپیوتری‬
‫‪a‬‬
‫‪a‬‬
‫‪a‬‬
‫)‪R(45) T(-3) T(3‬‬
‫‪a‬‬
‫)‪R(45‬‬
‫)‪T(-3‬‬
‫)‪T(3‬‬
‫‪114‬‬
‫گرافیک کامپیوتری‬
‫‪a‬‬
‫‪a‬‬
‫‪115‬‬
‫گرافیک کامپیوتری‬
‫‪116‬‬
‫گرافیک کامپیوتری‬
Rotation about the X-Axis
y' = y*cos θ - z*sin θ
z' = y*sin θ + z*cos θ
x' = x
R x ;
‫گرافیک کامپیوتری‬
117
Rotation about the Y-Axis
z' = z*cos θ- x*sin θ
x' = z*sin θ + x*cos θ
y' = y
R y ;
‫گرافیک کامپیوتری‬
118
Rotation about the Z-Axis
x' = x*cos θ - y*sin θ
y' = x*sin θ + y*cos θ
z' = z
R z ;
119
‫گرافیک کامپیوتری‬
‫‪120‬‬
‫گرافیک کامپیوتری‬
‫‪121‬‬
‫گرافیک کامپیوتری‬
A
Original
Position
X’= X
C
B
Y’= -Y
B’
C’
A’
Reflected
Position
‫انعکاس حول‬
‫ ها‬X ‫محور‬
‫گرافیک کامپیوتری‬
122
C’
A
Original
Position
C
X’= -X
A’
B’
B
Y’= Y
Reflected
Position
‫انعکاس حول‬
‫ ها‬Y ‫محور‬
‫گرافیک کامپیوتری‬
123
Original
Position
C
A
B
X’= -X
Y’= -Y
C’
A’
B’
Reflected
Position
‫انعکاس حول‬
‫مبدا مختصات‬
‫گرافیک کامپیوتری‬
124
Original
Position
B
C
y=x
X’= Y
A
Y’= X
A’
C’
B’
Reflected
Position
‫انعکاس نسبت‬
y=x ‫به خط‬
‫گرافیک کامپیوتری‬
125
‫در حالت کلی برای انعکاس نسبت به هر خطی مانند ‪ Y = mx +b‬در فضای‬
‫دوبعدی می توان از ترکیب سه تبدیل انتقال ‪ ،‬دوران ‪ ،‬انعکاس انجام شود‬
‫‪‬خط را بگونه ای انتقال دهیم که از مبدا مختصات عبور کند‬
‫‪‬خط عبوری از مبدا مختصات را دوران داده تا بر یکی از محورهای‬
‫مختصات منطبق گردد‬
‫‪‬شکل را نسبت به محور مورد نظر انعکاس می دهیم‬
‫‪‬معکوس تبدیالت را انجام می دهیم (معکوس دوران و معکوس انتقال )‬
‫اگر ضرایب انعکاس به مقادیری غیر از ‪ 1‬و ‪ 1-‬تغییر یابد شکل انعکاس یافته‬
‫نسبت به محور انعکاس دورتر یا نزدیکتر خواهد بود‬
‫‪126‬‬
‫گرافیک کامپیوتری‬
‫)‪A=(5,5‬‬
‫)‪B=(6,2‬‬
‫)‪C=(7,4‬‬
‫‪y=x+3‬‬
‫‪A‬‬
‫‪C‬‬
‫‪B‬‬
‫‪127‬‬
‫گرافیک کامپیوتری‬
‫)‪T(0,-3‬‬
‫‪A‬‬
‫‪C‬‬
‫‪B‬‬
‫)‪A=(5,2‬‬
‫)‪B=(6,-1‬‬
‫)‪C=(7,1‬‬
‫‪128‬‬
‫گرافیک کامپیوتری‬
‫)‪T(0,-3‬‬
‫)‪A=(5,5‬‬
‫)‪B=(6,2‬‬
‫)‪C=(7,4‬‬
‫)‪R(45‬‬
‫) ‪A=(3√2/2 , 7√2/2‬‬
‫) ‪B=(7√2/2 , 5√2/2‬‬
‫) ‪C=(6√2/2 , 8√2/2‬‬
‫‪129‬‬
‫گرافیک کامپیوتری‬
‫)‪R(45‬‬
‫)‪A=(5,2‬‬
‫)‪B=(6,-1‬‬
‫)‪C=(7,1‬‬
Reflection
about Y Axis
A=(3√2/2 , 7√2/2 )
B=(7√2/2 , 5√2/2 )
C=(6√2/2 , 8√2/2 )
A=(-3√2/2 , 7√2/2 )
B=(-7√2/2 , 5√2/2 )
C=(-6√2/2 , 8√2/2 )
‫گرافیک کامپیوتری‬
130
‫)‪R(-45‬‬
‫) ‪A=(2√2 , 5√2‬‬
‫) ‪B=(-√2 , 6√2‬‬
‫) ‪C=(√2, 7√2‬‬
‫‪131‬‬
‫) ‪A=(-3√2/2 , 7√2/2‬‬
‫) ‪B=(-7√2/2 , 5√2/2‬‬
‫) ‪C=(-6√2/2 , 8√2/2‬‬
‫گرافیک کامپیوتری‬
T(0,3)
Original
Position
A
C
B
A=(2√2 , 8√2 )
B=(-√2 , 9√2 )
C=)√2, 10√2 )
A=(2√2 , 5√2 )
B=(-√2 , 6√2 )
C=(√2, 7√2 )
‫گرافیک کامپیوتری‬
132
‫‪133‬‬
‫گرافیک کامپیوتری‬
‫‪ ‬بررسی نقطه با کمترین و بیشترین مقادیر ‪X , Y‬‬
‫‪Xmin < X < Xmax‬‬
‫‪Ymin < Y < Ymax‬‬
‫‪ ‬در صورت نقض هریک از‪ 4‬شرط باال نقطه داخل کادر‬
‫رسم نمی شود و آن را حذف می کنیم‬
‫)‪P= (X, Y‬‬
‫‪134‬‬
‫گرافیک کامپیوتری‬
Intersection Clipping Algorithm
Cohen- Sutherland Clipping Algorithm
Mid Point Clipping Algorithm
‫گرافیک کامپیوتری‬
135
‫‪ (1‬معادله خط را با ‪ 4‬لبه قطع می دهیم‬
‫‪ (2‬مقایسه نقاط تقاطع با چهارگوشه مستطیل‬
‫ایراد‪:‬محاسبات طوالنی و سخت‬
‫بخاطر ضرب و تقسیم اعشاری‬
‫‪ (3‬درصورت وجود خط داخل کادر آن رسم و در غیر اینصورت حذف می شود‬
‫‪Xmin < X < Xmax‬‬
‫‪Ymin < Y < Ymax‬‬
‫)‪P= (X, Y‬‬
‫‪136‬‬
‫گرافیک کامپیوتری‬
‫‪ .1‬برای هر یک از نقاط دوسر پاره خط یک مقدار ‪ 4‬بیتی درنظر گرفته می شود‬
‫‪B1 B2 B3 B4‬‬
‫‪B4‬‬
‫‪B3‬‬
‫‪Left‬‬
‫‪Right‬‬
‫‪B2‬‬
‫‪B1‬‬
‫‪Above Below‬‬
‫•اگر ‪ AND‬و ‪ OR‬مقادیر دوسر پاره خط صفر شوند خط داخل کادر قرار دارد و آن رسم‬
‫می شود‬
‫•اگر ‪ AND‬دوسر پاره خط مخالف صفر شد خط خارج از کادر است و آن حذف می شود‬
‫•اگر ‪ AND‬دوسر پاره خط صفر شد ‪ OR‬دوسر پاره خط مخالف صفر شد پاره خط را با‬
‫لبه هایی که یک شده اند قطع می دهیم ‪:‬‬
‫‪ ‬اگر دوتا یک داشت آن دو لبه را از نقاط تقاطع بهم وصل می کنیم‬
‫‪‬اگر یک عدد یک داشت یک سر پاره خط داخل و سر دیگر آن خارج کادر است و‬
‫از نقطه تقاطع تا نقطه داخلی رسم و از نقطه تقاطع تا نقطه خارجی حذف می کنیم‬
‫‪137‬‬
‫گرافیک کامپیوتری‬
‫‪E‬‬
‫‪N‬‬
‫‪F‬‬
‫‪D‬‬
‫‪C‬‬
‫‪A‬‬
‫‪M‬‬
‫‪B‬‬
‫‪G‬‬
‫‪H‬‬
‫‪N‬‬
‫‪M‬‬
‫‪G‬‬
‫‪H‬‬
‫‪E‬‬
‫‪F‬‬
‫‪D‬‬
‫‪C‬‬
‫‪B‬‬
‫‪A‬‬
‫‪0001 0000 0000 0000 1010 0010 0100 0100 0010 1000‬‬
‫‪M-N‬‬
‫‪G -H‬‬
‫‪E-F‬‬
‫‪C-D‬‬
‫‪A-B‬‬
‫نام پاره خط‬
‫‪0000‬‬
‫‪0100‬‬
‫‪0010‬‬
‫‪0000‬‬
‫‪0000‬‬
‫‪AND‬‬
‫‪1010‬‬
‫‪0100‬‬
‫‪1010‬‬
‫‪0000‬‬
‫‪0001‬‬
‫‪OR‬‬
‫یک سرخط داخل‬
‫و سر دیگر‬
‫خارج کادر است‬
‫‪138‬‬
‫خط خارج کادر‬
‫است‬
‫خط خارج کادر‬
‫است‬
‫خط داخل کادر‬
‫است‬
‫یک سرخط داخل و‬
‫سر دیگر خارج‬
‫کادر است‬
‫گرافیک کامپیوتری‬
‫‪ ‬نقطه میانی پاره خط را بدست می آوریم‬
‫‪ ‬اگر نقطه داخل کادر باشد آن را رسم می کنیم‬
‫‪ ‬اگر خاج کادر باشد آن را حذف می کنیم‬
‫‪ ‬این کار را تا زمانی که یکی از نقاط میانی روی ضلع بیفتد ادامه‬
‫می دهیم‬
‫‪M‬‬
‫‪A‬‬
‫‪B‬‬
‫نقطه میانی‬
‫اول‬
‫‪139‬‬
‫نقطه میانی‬
‫دوم‬
‫گرافیک کامپیوتری‬
‫‪140‬‬
‫گرافیک کامپیوتری‬
‫• روش نگاشت بیتی (‪ ، )Bitmap‬نقش پیکسلی یا رستر‬
‫• روش نمایش برداری (‪)Vector Representation‬‬
‫‪141‬‬
‫گرافیک کامپیوتری‬
‫‪ ‬روشی پرکاربرد برای محدوده وسیعی از تصاویر‬
‫‪‬پیاده سازی نسبتا ساده‬
‫‪‬بصورت مشبک‬
‫‪‬به ازای هر پیکسل میزان رنگ و یا روشنایی بصورت جداگانه‬
‫‪‬مناسب برای طرح های شلوغ با رنگ ها و سایه های درهم‬
‫هرچه تعداد قطعات بیشتر ‪<-‬‬
‫وضوح بیشتر‪<-‬‬
‫اشغال فضای بیشتر فایل‬
‫‪142‬‬
‫گرافیک کامپیوتری‬
‫‪ ‬تصویر بواسطه یکسری سمبل خاص توصیف می شود‬
‫‪‬دستورات می توانند داده های اسکی باشند که امکان ویرایش داشته باشند‬
‫‪‬مناسب برای تصاویری که دارای گراف ‪ ،‬اشکال ترسیمی و رنگ های ساده هستند‬
‫‪‬از نظر میزان فضای ذخیره سازی نسبت به روش نگاشت بیتی مقرون بصرفه تر است‬
‫‪P1‬‬
‫‪P2‬‬
‫‪P5‬‬
‫‪P3‬‬
‫‪143‬‬
‫‪P4‬‬
‫گرافیک کامپیوتری‬
‫)‪Line (p1,p2‬‬
‫)‪Line (p2,p3‬‬
‫)‪Line (p3,p4‬‬
‫)‪Line(p4,p1‬‬
‫)‪Circle (p5,r‬‬
‫♣ اندازه بزرگ فایل ‪ ،‬بویژه با باال رفتن وضوح تصویر‬
‫‪ (1‬الگوریتم های کدگذاری به منظور کوچکتر شدن اندازه فایل‬
‫‪ (2‬استفاده از گذرگاه های داده ‪ 32‬و ‪ 64‬بیتی که باعث کاهش زمان بارگذاری می شود‬
‫♣ انعطاف پذیری نسبتا پایین بعلت عدم ارتباط طبیعی و حقیقی بین پیکسل ها‬
‫‪‬برای تغییرضخامت خط باید تمام پیکسل های آنها را یافته و تغییر را روی تمام آنها اعمال کند‬
‫♣ انعطاف پذیری نسبتا پایین به لحاظ کیفیت ثابت‬
‫‪ ‬برای بزرگ نمایی تصویر ‪ ،‬تصویر دچار حالت دندانه ای می شود و پردازش تصویر را با‬
‫مشکل مواجه می کند‪.‬‬
‫‪‬برای رفع آن ترسیم خطی بین پیکسل ها که باعث افزایش عملیات پردازش‬
‫‪‬با کوچک کردن تصویر‪ ،‬باعث تلفیق پیکسل ها و عدم تفکیک نواحی سایه دار و قسمت اصلی‬
‫‪144‬‬
‫گرافیک کامپیوتری‬
‫‪ .1‬تصاویر تک رنگ‬
‫‪ .2‬تصاویر رنگی‬
‫‪145‬‬
‫گرافیک کامپیوتری‬
‫ایده آل برای زمانی که هدف تنها ترسیم خطوط و اشکال هندسی‬
‫تصاویری که در آنها نواحی‬
‫سایه داربه‬
‫استفاده از یک بیت برای هر پیکسل (‪ =1‬سیاه و‪= 0‬سفید )رنگ خاکستری نمایش می یابند‬
‫به منظور ایجاد تصاویرسطوح خاکستری ‪،‬‬
‫شدت رنگ سیاه در نقاط مختلف می بایست تغییر یابد(روش سایه زنی)‬
‫‪ ‬تصویر بصورت سه بعدی توصیف می گردد‬
‫‪‬بعد اول و دوم تعداد پیسکل ها در سطر‬
‫هستندبه تشخیص ‪ 64‬حالت سایه‬
‫ستونقادر‬
‫چشم وانسان‬
‫تصویر)‬
‫‪‬بعد سوم تعداد بیت های بکار رفته برای نمایش روشنی‬
‫عمق‪)64‬‬
‫پیکسل ((‪=26‬‬
‫خاکستری است‬
‫در واقع عمق تصویر دقت تفکیک خاکستری پیکسل هاست‬
‫‪146‬‬
‫گرافیک کامپیوتری‬
‫به دلیل محدودیت دستگاه های ورودی و خروجی در استفاده از رنگ های متنوع‬
‫بسیار محدود و پرهزینه بود از همین رو طراحان مجبور بودند رنگ های مورد‬
‫نیاز خود را با تقریب قابل قبولی از رنگ های طبیعی ایجاد نمود‬
‫‪ ‬به منظور ایجاد محدودیت در ترسیمات رنگی و نمایشی لیستی از رنگ های قابل‬
‫نمایش (جعبه رنگ یا پالت ) در اختیار کاربر قرار می گیرد‬
‫‪ ‬نیاز به گستره وسیع تری از رنگ ها ‪:‬‬
‫• ترکیب رنگ های موجود و ایجاد رنگ های جدید‬
‫‪RGB .1‬‬
‫‪CMYK .2‬‬
‫‪147‬‬
‫گرافیک کامپیوتری‬
‫‪ : RGB‬از ترکیب سه رنگ اصلی قرمز ‪ ،‬سبز و آبی ساخته می شود‬
‫)‪ : CMYK(Cyan Magenta Yellow Black‬از ترکیب چهار رنگ فیروزه‬
‫ای ‪ ،‬صورتی ‪ ،‬زرد و سیاه ساخته می شود‬
‫‪Cyan: blue-green color‬‬
‫‪Magenta : deep purplish red‬‬
‫‪148‬‬
‫گرافیک کامپیوتری‬
‫‪( Hue‬رنگ)‪ :‬همان چیزی که به آن رنگ اطالق می شود‬
‫‪(Saturation‬سیری) ‪ :‬بیان کننده میزان سفیدی ‪ ،‬مثل رنگ قهوه ای در شکالت و‬
‫شکالت شیری‬
‫‪(Intensity‬شدت) ‪ :‬بیان کننده میزان روشنایی ‪ ،‬مثل رنگ نارنجی در آفتاب و سایه‬
‫در صورتی که بجای شدت از درخشندگی (‪ )Luminosity‬استفاده شود‬
‫شیوه ای ‪ HSL‬بنام بوجود می آید‬
‫‪149‬‬
‫گرافیک کامپیوتری‬
‫تعداد رنگ هایی که توسط یک دستگاه ورودی خروجی پشتیبانی می شود ‪ ،‬بوسیله‬
‫کل بیت های تعیین شده برای ترکیب رنگ ‪ ،‬مشخص می شود‬
‫‪ 8‬بیت برای هر رنگ پایه ‪ 8*3 <-‬بیت برای سه رنگ اصلی ‪<-‬‬
‫‪(224‬حدود ‪ 16‬میلیون رنگ)‬
‫هر پیکسل نیاز به ‪ 24‬بیت برای تعیین رنگش دارد‬
‫تصویری که ‪ 1024*1024‬است‬
‫‪ 25165824=24*1024*1024‬بیت حافظه الزم است‬
‫برای رفع مشکل از روش های فشرده سازی‬
‫یا استفاده ازپالت های محدود کننده تعداد رنگ‬
‫‪150‬‬
‫گرافیک کامپیوتری‬
‫هر چند که قالب های فایل های گرافیکی بسیار متنوع هستند ولی با این حال روش های‬
‫کدگذاری داده بسیار محدود است ‪.‬‬
‫فایل های گرافیکی ذاتا فایل های حجیمی هستند از همین رو متدهای خاصی برای فشرده‬
‫سازی به هنگام ذخیره سازی مورد استفاده قرار می گیرند‬
‫کد گذاری دودویی‬
‫کدگذاری سمبلیک‬
‫‪151‬‬
‫گرافیک کامپیوتری‬
‫‪‬بیشتر برای نگاشت بیتی استفاده می شود‬
‫‪‬برای ذخیره فایل تصویر از ‪ 0‬و ‪ 1‬استفاده می شود ‪000100001110‬‬
‫‪‬توسط کاربران قابل درک نیستند (نیاز به یک نرم افزار بخصوص یا سایرمفسرین‬
‫دودویی دارند)‬
‫‪‬از ترتیب بایتی مختلف استفاده نمایند‬
‫‪‬در مواردی که هر پیکسل با بیش از یک بیت نگهداری می شود از نحوه ذخیره آنها نیز‬
‫باید اطالع داشته باشیم (چند بیت مربوط به هر پیکسل بدنبال هم ثبت می گردند)‬
‫‪152‬‬
‫گرافیک کامپیوتری‬
‫‪ ‬داده تقریبا در همه موارد بصورت ‪ ASCII‬ذخیره می شوند‬
‫‪‬آنها را می توان با یک ویرایشگر متن ویرایش کرد‬
‫‪ ‬این روش از انعطاف پذیری کمتری برخوردار است ونسبتا ضعیف است‬
‫‪153‬‬
‫گرافیک کامپیوتری‬
‫روش ‪Run - Length‬‬
‫‪ ‬کدگذاری ایستا (‪:)Static Coding‬‬
‫‪ ‬داده های ورودی توسط رسانه ورودی بایک الگوریتم ثابت کدگذاری و به منظور برگرداندن‬
‫فایل از حالت کدگذاری ‪،‬معکوس الگوریتم بکار برده می شود‬
‫‪ ‬بافرینگ (حافظه مورد نیاز بافر در برابر حجم کل فایل ناچیز است)‬
‫‪ ‬کدگذاری پویا (‪: )Dynamic Coding‬‬
‫روش ‪Huffman‬‬
‫‪ ‬در ابتدا یک بررسی آماری و اجمالی به محتویات فایل‬
‫‪ ‬حافظه مورد نیاز نسبتا بزرگ‬
‫‪154‬‬
‫گرافیک کامپیوتری‬
‫‪ o‬پیکسل های تکراری با یک سمبل خاص جایگذاری می شوند‬
‫‪ o‬یک شمارنده تعداد دفعات تکرار آنها را دربافر مشخص می کند‬
‫‪FFFCCCCCCCBBBBBBBBBBHHAAAAAAA ‬‬
‫‪F3#C7#B10#HHA7‬‬
‫با فرض اینکه ‪ #‬سمبل طول‪-‬اجرا است و حداقل سه بار تکرار باید رخ دهد تا جایگزین‬
‫گردد‬
‫در تصاویری که زمینه‬
‫یکنواختی دارند ازکارایی‬
‫خوبی برخوردار است‬
‫‪155‬‬
‫گرافیک کامپیوتری‬
‫‪‬در سال ‪ 1952‬برای کدکردن فایل متنی ابداع شد‬
‫‪ ‬کدهایی که تعداد وقوع آنها باالتر است با کدهای کوتاهتری جایگزین گردد‬
‫‪ ‬به همین منظور یک مرحله پیش پردازشی برای استخراج تعداد دفعات تکرار اجرا می گردد‬
‫مزیت ‪:‬‬
‫‪ ‬بدون نیاز به جدا کننده کدهای مندرج قابل تفکیک است‬
‫معایب ‪:‬‬
‫‪‬سربار اضافی برای سرشماری آمار اولیه که مستلزم حافظه بافر و اتالف زمان است‬
‫‪‬با ضایع شده یک بیت کل کد باید از نو بوجود آید‬
‫‪156‬‬
‫گرافیک کامپیوتری‬
‫‪ABAGACCDEFAGACCCFCDEGGE‬‬
‫‪G‬‬
‫‪F‬‬
‫‪E‬‬
‫‪D‬‬
‫‪C‬‬
‫‪B‬‬
‫‪A‬‬
‫‪Symbol‬‬
‫‪001‬‬
‫‪100‬‬
‫‪101‬‬
‫‪0001‬‬
‫‪01‬‬
‫‪0000‬‬
‫‪11‬‬
‫‪Code‬‬
‫‪23‬‬
‫سپس به زیر درخت چپ مقدار‬
‫صفر و به زیر درخت راست‬
‫مقدار یک اختصاص می دهیم‬
‫‪13‬‬
‫‪10‬‬
‫‪7‬‬
‫‪5‬‬
‫‪3‬‬
‫‪A =5‬‬
‫‪157‬‬
‫‪E=3‬‬
‫‪F=2‬‬
‫گرافیک کامپیوتری‬
‫‪C=6‬‬
‫‪G=4‬‬
‫‪D=2‬‬
‫‪B=1‬‬
‫‪158‬‬
‫گرافیک کامپیوتری‬
Character Rendering
‫ارقام وسمبل ها‬، ‫• به منظور تولید حروف‬
A ,5 ,$,d,0,& –
‫• فونت –قالب طرح کلی یک مجموعه از کاراکترها‬
Times New Roman, Courier, Arial , BNazanin –
‫• فونت می تواند ظاهرهای مختلفی داشته باشد‬
Normal, bold, italic –
Character Rendering ‫• تکنیک های‬
)10-point, 12-point( ‫معموال بر حسب نقطه‬
‫سایز فونت‬
Bitmap
font –
Denotes height of the characters in inches
Outline –
1 inch = 2.54 cm
‫گرافیک کامپیوتری‬
159
‫• هر فونت برای هر سایز و هر قالبی باید یک‬
‫طرح داشته باشد (‪)Bitmap‬‬
‫‪• Advantages‬‬
‫– ساده‬
‫– سریع ‪،‬چون نیازی به محاسبه ندارد‬
‫‪• Disadvantages‬‬
‫– حافظه زیاد ‪ :‬برای هر فونت و سایز آن یک ماتریس‬
‫– سایزها‪/‬قالبهای مختلف ‪،‬می توانند از یک فونت تولید شوند اما نتیجه آن رضایت بخش نیست‬
‫– سایز فونت وابسته به ‪( resolution‬یک ‪ bitmap‬برای فونتی با سایز ‪ 12‬یک کاراکتر ‪12‬‬
‫نقطه ای در یک ‪ 72 pixels/inch resolution‬تولید می کند در حالیکه همان ‪bitmap‬‬
‫یک کاراکتر ‪ 9‬نقطه ای در یک ‪ 96 pixels/inch resolution‬تولید می کند‬
‫• کاراکتر با استفاده از طرح های اولیه گرافیک‬
‫(خط ‪،‬کمان‪ )...،‬تعریف می شوند‬
‫– حافظه کمتر (نیازی به ذخیره ‪ bitmap‬نیست)‬
‫– مناسب برای سایزها‪ /‬قالبها‬
‫• استفاده از ‪ Scale‬برای ‪resize‬‬
‫• استفاده از ‪ Shear‬برای ‪italic‬‬
‫• و‪...‬‬
‫– آهسته (نیاز به پردازش برای رسم )‬
‫‪163‬‬
‫گرافیک کامپیوتری‬