سلام!

این جلسه قرار است کشیدن چند شکل را روی صفحه یاد بگیریم.

برای این کار به کتاب خانه ی SDL_gfxPrimitives.h احتیاج دارید.

#include "SDL/SDL_gfxPrimitives.h"

این کتاب خانه شامل توابع مختلفی برای کشیدن شکل های مختلف است. این توابع را به همراه راهنمای استفاده از آن ها می توانید در ادامه مشاهده کنید. خروجی تمامی توابع زیر در صورت موفقیت ۰ و در غیر این صورت -۱ خواهد بود.

ورودی آخر تمامی توابع میزان شفافیت رنگ را مشخّص می کند. در صورتی که این مقدار برابر با ۲۵۵ باشد، رنگ کامل است. هر چه این مقدار کم تر باشد، رنگ های زیری بیشتر معلوم می شوند.

int pixelRGBA( SDL_Surface*, x, y, red, green, blue, alpha );

این تابع در نقطه ی x و y، نقطه ای با رنگ مشخص شده می کشد.

int lineRGBA( SDL_Surface*, x1, y1, x2, y2, red, green, blue, alpha );

این تابع نقطه ی x1 و y1 را با رنگ مشخّص شده به نقطه ی x2 و y2 می کشد.

int rectangleRGBA( SDL_Surface*, x1, y1, x2, y2, red, green, blue, alpha );

این تابع مستطیلی توخالی با مختصات و رنگ مشخّص شده می کشد.

int boxRGBA( SDL_Surface*, x1, y1, x2, y2, red, green, blue, alpha );

این تابع مستطیلی توپر با مختصات و رنگ مشخّص شده می کشد.

int ellipseRGBA( SDL_Surface*, x, y, rx, ry, red, green, blue, alpha );

x و y بیان گر مختصات مرکز دایره ی توخالی هستند. rx یعنی فاصله ی چپ ترین نقطه از مرکز (شعاع افقی) و ry یعنی فاصله ی بالاترین نقطه از مرکز (شعاع عمودی).

int filledEllipseRGBA( SDL_Surface*, x, y, rx, ry, red, green, blue, alpha );

x و y بیان گر مختصات مرکز دایره ی توپر هستند. rx یعنی فاصله ی چپ ترین نقطه از مرکز (شعاع افقی) و ry یعنی فاصله ی بالاترین نقطه از مرکز (شعاع عمودی).

int trigonRGBA( SDL_Surface*, x1, y1, x2, y2, x3, y3, red, green, blue, alpha );

این تابع مختصات سه راس یک مثلّث توخالی را گرفته و آن را رسم می کند.

int filledTrigonRGBA( SDL_Surface*, x1, y1, x2, y2, x3, y3, red, green, blue, alpha );

این تابع مختصات سه راس یک مثلّث توپر را گرفته و آن را رسم می کند.

int polygonRGBA( SDL_Surface*, vx[], vy[], n, red, green, blue, alpha );

این تابع یک چند ضلعی توخالی با مختصات مشخّص شده می کشد.

برای استفاده از این تابع باید دو تا آرایه ی n تایی (n تعداد راس هاست) از جنس short int تعریف کرده و سپس x راس ها را در یک آرایه و y راس ها را در آرایه ی دیگر بریزید. سپس این دو آرایه را همراه با تعداد راس ها با این تابع ورودی دهید.

int filledPolygonRGBA( SDL_Surface*, vx[], vy[], n, red, green, blue, alpha );

این تابع یک چند ضلعی توپر را مختصات مشخّص شده می کشد.

برای استفاده از این تابع باید دو تا آرایه ی n تایی (n تعداد راس هاست) از جنس short int تعریف کرده و سپس x راس ها را در یک آرایه و y راس ها را در آرایه ی دیگر بریزید. سپس این دو آرایه را همراه با تعداد راس ها با این تابع ورودی دهید.

برای آشنا شدن با تمامی تابع های موجود در کتاب خانه ی SDL_gfx به این جا مراجعه کنید. همه ی توابع را به صورت کامل توضیح داده است.

موفق باشید!