آموزش کتابخانه گرافیکی دوبعدی جلسه ی هفتم
آموزش کتابخانه گرافیکی دوبعدی جلسه ی هفتم
برای ترسیم دایره در emwin دو تابع وجود دارد که یکی دایره ی تو خالی و دیگری دایره ی تو پر رسم می کند.
در ادامه این دو تابع را تشریح می کنیم
تابع نمونه :
void GUI_DrawCircle(int x0, int y0, int r);
پارامترهای تابع
x0 | موقعیت X از مرکز دایره در ویندوز جاری |
y0 | موقعیت Y از مرکز دایره در ویندوز جاری |
r | شعاع دایره (نصف قطر) که بایستی عدد مثبتی باشد |
توضیحات :
این تابع یک دایره ی تو خالی با اندازه ی و موقعیت مشخص شده توسط تابع رسم می کند.
مثال :
for (i = 10; i < 50; i += 3) { GUI_DrawCircle(120, 60, i); }
اسکرین شات :
تابع نمونه :
void GUI_FillCircle(int x0, int y0, int r);
پارامترهای تابع
x0 | موقعیت X از مرکز دایره در ویندوز جاری |
y0 | موقعیت Y از مرکز دایره در ویندوز جاری |
r | شعاع دایره (نصف قطر) که بایستی عدد مثبتی باشد |
توضیحات :
این تابع یک دایره ی تو پر با اندازه ی و موقعیت مشخص شده توسط تابع رسم می کند.
مثال:
اسکرین شات:
رسم بیضی ها
برای ترسیم بیضی ها ، همانند دایره ها دو تابع وجود دارد که یکی بیضی تو خالی و دیگری بیضی توپر ترسیم می کند
تابع نمونه :
void GUI_DrawEllipse(int x0, int y0, int rx, int ry);
پارامترهای تابع
x0 | X-position of the center of the circle in pixels of the client window. |
y0 | Y-position of the center of the circle in pixels of the client window. |
rx | X-radius of the ellipse (half the diameter). Must be a positive value. |
ry | Y-radius of the ellipse (half the diameter). Must be a positive value. |
توضیحات :
این تابع یک بیضی تو خالی به مرکزیت x0 و y0 ، شعاع x rx و شعاع y ry در ویندوز جاری رسم می کند
تابع نمونه :
void GUI_FillEllipse(int x0, int y0, int rx, int ry);
پارامترهای تابع
x0 | X-position of the center of the circle in pixels of the client window. |
y0 | Y-position of the center of the circle in pixels of the client window. |
rx | X-radius of the ellipse (half the diameter). Must be a positive value. |
ry | Y-radius of the ellipse (half the diameter). Must be a positive value. |
توضیحات :
این تابع یک بیضی تو پر به مرکزیت x0 و y0 ، شعاع x rx و شعاع y ry در ویندوز جاری رسم می کند.
مثال:
// Demo ellipses GUI_SetColor(0xff); GUI_FillEllipse(100, 180, 50, 70); GUI_SetColor(0x0); GUI_DrawEllipse(100, 180, 50, 70); GUI_SetColor(0x000000); GUI_FillEllipse(100, 180, 10, 50);
اسکرین شات:
رسم آرک (قوس)
رسم آرک در emWin یک تابع دارد که در زیر تشریح شده است
تابع نمونه :
void GUI_DrawArc(int xCenter, int yCenter, int rx, int ry, int a0, int a1);
پارامترهای تابع
xCenter | Horizontal position of the center in pixels of the client window. |
yCenter | Vertical position of the center in pixels of the client window. |
rx | X-radius (pixels). |
ry | Y-radius (pixels). |
a0 | Starting angle (degrees). |
a1 | Ending angle (degrees). |
توضیحات :
این تابع یک آرک(قوس) را در اندازه و موقعیت مشخص شده در ویندوز جاری ترسیم می کند. آرک (قوس) یک قسمت از محیط بیرونی یک دایره می باشد.
به طور معمول پارامتر ry استفاده نمی شود و در عوض rx به جای آن استفاده می گردد.
مثال:
void DrawArcScale(void) { int x0 = 160; int y0 = 180; int i; char ac[4]; GUI_SetBkColor(GUI_WHITE); GUI_Clear(); GUI_SetPenSize( 5 ); GUI_SetTextMode(GUI_TM_TRANS); GUI_SetFont(&GUI_FontComic18B_ASCII); GUI_SetColor( GUI_BLACK ); GUI_DrawArc( x0,y0,150, 150,-30, 210 ); GUI_Delay(1000); for (i=0; i<= 23; i++) { float a = (-30+i*10)*3.1415926/180; int x = -141*cos(a)+x0; int y = -141*sin(a)+y0; if (i%2 == 0) GUI_SetPenSize( 5 ); else GUI_SetPenSize( 4 ); GUI_DrawPoint(x,y); if (i%2 == 0) { x = -123*cos(a)+x0; y = -130*sin(a)+y0; sprintf(ac, "%d", 10*i); GUI_SetTextAlign(GUI_TA_VCENTER); GUI_DispStringHCenterAt(ac,x,y); } } }
اسکرین شات: