آموزش کتابخانه گرافیکی دوبعدی جلسه ی هفتم

آموزش کتابخانه گرافیکی دوبعدی جلسه ی ششم
اکتبر 8, 2016
آموزش کتابخانه گرافیکی دوبعدی جلسه ی هشتم
اکتبر 17, 2016

آموزش کتابخانه گرافیکی دوبعدی جلسه ی هفتم

برای ترسیم دایره در emwin دو تابع وجود دارد که یکی دایره ی تو خالی و دیگری دایره ی تو پر رسم می کند.

در ادامه این دو تابع را تشریح می کنیم

شرح تابع GUI_DrawCircle

تابع نمونه :

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);
}

اسکرین شات :

شرح تابع GUI_FillCircle

تابع نمونه :

void GUI_FillCircle(int x0, int y0, int r);

پارامترهای تابع

x0 موقعیت X از مرکز دایره در ویندوز جاری
y0 موقعیت Y از مرکز دایره در ویندوز جاری
r شعاع دایره (نصف قطر) که بایستی عدد مثبتی باشد

توضیحات :

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

مثال:

اسکرین شات:

رسم بیضی ها

برای ترسیم بیضی ها ، همانند دایره ها دو تابع وجود دارد که یکی بیضی تو خالی و دیگری بیضی توپر ترسیم می کند

شرح تابع GUI_DrawEllipse

تابع نمونه :

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 در ویندوز جاری رسم می کند

شرح تابع GUI_FillEllipse

تابع نمونه :

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 یک تابع دارد که در زیر تشریح شده است

شرح تابع GUI_DrawArc

تابع نمونه :

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);
}
}
}

 

اسکرین شات:

حسین
حسین
من 28 سال سن دارم و رشته ی تحصیلی ام مهندسی برق قدرت بوده علاوه بر برق علاقمند به دنیای الکترونیک ، برنامه نویسی و طراحی وب هستم . این سایت رو برای آموزش رابط گرافیکی emWin راه اندازی کردم که بدون کمک شما جلو رفتن غیر ممکنه پس اگه آموزش یا مطالب مرتبطی دارید برام ایمیل کنید تا به اسم خودتون توی سایت منتشر بشه. hosseintomari@gmail.com
اشتراک
اطلاع از
guest

0 نظرات
بازخورد داخلی
مشاهده همه نظرات
0
برای بهبود مطالب، لطفاً نظر بدهید.x