• GetMaxX va GetMaxY
  • 2-misol.
  • 3-misol.
  • Tasdiqlayman” Qo`shtepa ixtisoslashtirilgan maktabi mmibdo`: S. Egamov




    Download 5,1 Mb.
    bet147/174
    Sana22.05.2024
    Hajmi5,1 Mb.
    #250400
    1   ...   143   144   145   146   147   148   149   150   ...   174
    Bog'liq
    Tasdiqlayman” Qo`shtepa ixtisoslashtirilgan maktabi mmibdo` S.

    PutPixel(X,Y,Rang) operatori ekranning (X,Y) koordinatali nuqtasini “Rang” parametri bilan aniqlangan rangga bo‘yaydi. Masalan, PutPixel(400,200,Red) operatori ekranning (400,200) koordinatasiga mos joyda qizil rangli nuqta joylashtiradi (yuqoridagi rasm).
    GetPixel(X,Y) funksiyasi ekranning (X,Y) koordinatali nuqtasi qanday rangda ekanini aniqlaydi. Masalan, Rang – butun tipli o‘zgaruvchi bo‘lsa, Rang:= GetPixel(40,50); operatori bajarilgach Rang o‘zgaruvchi (40,50) koordinatali nuqta rangining qiymatiga teng bo‘ladi.
    GetMaxX va GetMaxY funksiyalari mos ravishda ekranning gorizontal va vertikal yo‘nalishi bo‘yicha maksimal koordinatasini aniqlaydi. Bu funksiyalar kompyuterning grafik adapteri va ishlatiladigan grafik holatga bo‘g‘liq bo‘lmagan dasturlar tuzishda foydalidir.
    1-misol. Nuqtalar yordamida ekranning (0,0) nuqtasini (639,479) nuqtasi bilan tutashtiruvchi qizil rangli kesma chizish dasturini tuzing.
    Yechish. Quyidagicha butun o’zgaruvchilarni qiymati bilan olamiz: bx:=0; ox:= GetMaxX; (ox:=639; kabi olish mumkin). Tekshirib ko’rishingiz mumkin, [bx, ox] oraliqda y=[GetMaxY·x/GetMaxX] butun qiymatli chiziqli funksiyaning boshlang’ich qiymati 0 va oxirgi qiymati 479 bo’ladi (GetMaxY o’rniga 479 yozish ham mumkin). Endi parametrli takrorlash operatori yordamida tuzilgan quyidagi dastur misol yechimini beradi.
    Uses Graph;
    Var gd, gm:integer;
    bx, y, ox: Integer; x: LongInt;
    Begin
    Gd := 0; InitGraph(Gd, Gm, ‘‘);
    bx:=0; ox:= GetMaxX;
    For x:= bx to ox do begin
    y:= trunc(GetMaxY*x/GetMaxX); putpixel(x, y, red); end;
    Readln; CloseGraph;
    End.
    Nima uchun x o’zgaruvchi LongInt turda olinganini o’ylab ko’ring!
    2-misol. Nuqtalar yordamida ekran markazida R radiusli sariq rangli aylana chizish dasturini tuzing.
    Yechish. Ekran markazini aniqlaydigan butun o’zgaruvchilarni kiritib olamiz: markazX:=trunc(GetMaxX/2); markazY:=trunc(GetMaxY/2); (yoki markazX:=639; va markazY:=479). Matematikadan ma’lumki, ta’rif bo’yicha va . Bundan kelib chiqadiki, markazi (0,0) nuqtada bo’lgan R radiusli aylana nuqtalarini quyidagi formulalar juftligi orqali aniqlash mumkin: x = r·cos(), y = r·sin(), bunda  burchak 0 dan 2 gacha o’zgaradi. Dasturda aylana nuqtalarini zichroq chizish uchun  burchak o’zgarishini 0,01 qadam bilan olamiz. Shularga asosan quyidagi dasturni tuzamiz.
    Uses Graph;
    Var gd, gm:integer;
    x, y, markazX, markazY: Integer; R, alfa: real;
    Begin
    Gd := 0; InitGraph(Gd, Gm, ‘‘);
    Write(‘R= ‘); readln(R);
    markazX:=trunc(GetMaxX/2); markazY:=trunc(GetMaxY/2); alfa:=0;
    while alfa<=2*pi do begin
    x:= markazX +trunc(R*cos(alfa));
    y:= markazY +trunc(R*sin(alfa));
    putpixel(x, y, 14); alfa:= alfa+0.01;
    end;
    Readln; CloseGraph;
    End.
    3-misol. Ekran markazini koordinata boshi hisoblab nuqtalar yordamida x  [–5, 5] oraliqda ko’k rangda y=x2 funksiya grafigini chizish dasturini tuzing.
    Yechish. Bu vazifa quyidagicha hal etiladi:
    uses Graph;
    var gD,gm: Integer;
    markazX, markazY: integer; x, y: real;
    begin
    gD := 0; InitGraph(gD, gm, ‘‘);
    markazX:=trunc(getmaxx/2); markazY:=trunc(getmaxy/2); x:= –5;
    while x<=5 do begin
    y:=x*x; putpixel(trunc(10*x+markazX), trunc(–5*y+markazY),blue);
    x:=x+0.01; end;
    Readln; CloseGraph;
    end.
    Dasturda masshtabni kattalashtirish uchun x ni 10 ga, y ni 5 ga ko’paytirdik. Parabola shoxchalari quyidan yuqoriga yo’nalgan bo’lishi uchun “–” ishora qo’yilgan. Masshtabni kattalashtirishni va ishorani olib tashlab dasturni ishlatib ko’rishni o’zingizga havola etamiz.

    Download 5,1 Mb.
    1   ...   143   144   145   146   147   148   149   150   ...   174




    Download 5,1 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Tasdiqlayman” Qo`shtepa ixtisoslashtirilgan maktabi mmibdo`: S. Egamov

    Download 5,1 Mb.