Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Копия Си лекция каз.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
3 Мб
Скачать
☆

Int gmode;

int x,y,xk=500;

initgraph (&gdriver,&gmode,"C:\\TC\\bgi");

 

setcolor(RED);

x=80; y=30;

 

moveto(x,y);

outtext("жай сызық - SOLID_LINE");

setlinestyle (SOLID_LINE,0,NORM_WIDTH);

y+=20;

line(x,y,xk,y);

y+=40; moveto(x,y);

outtext("пунктир сызық –

DOTTED_LINE");

setlinestyle (DOTTED_LINE,0,NORM_WIDTH);

y+=20;

line(x,y,xk,y);

 

y+=40;

moveto(x,y);

outtext("штрих-пунктир сызық – CENTER_LINE");

setlinestyle (CENTER_LINE,0,NORM_WIDTH);

y+=20;

line(x,y,xk,y);

y+=40;

moveto(x,y);

outtext("штрихі ұзынша пунктир сызық");

setlinestyle (DASHED_LINE,0,NORM_WIDTH);

y+=20;

line(x,y,xk,y);

y+=40;

moveto(x,y);

outtext("қалың сызық");

setlinestyle (SOLID_LINE,0,THICK_WIDTH);

y+=20;

line(x,y,xk,y);

getch();

closegraph();

}

11.3. Тұйық сызықтар салу

Тіктөрбұрыш контурын салу үшін төмендегі функция

rectangle(xl,yl,x2,y2);

қолданылады, ол

сол жақ жоғарғы бұрышы - x1,y1, оң жақ төменгі бұрышы - х2,у2 болып келетін төртбұрыш сызады.

Сызық типі setlinestyle функциясымен, ал түсі — setcolor функциясымен анықталады.

Іші боялған тіктөрбұрыш салу үшін

bar(xl,yl, x2,y2);

функциясы пайдаланылады, x1, y1 сол жақ жоғарғы бұрыштың, ал х2 , у2 – оң жақ төменгі бұрыштың координаталары. Мұның қабырғалары өстерге параллель болады, контуры көрсетілмейді. Оны бояу стилі setfillstyle() функциясымен анықталады.

Алдыңғы жақ беті боялған параллелепипед салу функциясы

bar3d(xl,yl, x2,y2, Қалыңдығы, Ж_Беті);

сыртқы контуры сызылған паралелепипед салады,

м

ұндағы x1,y1 параметрлері сол жақ жоғарғы бұрыштың, ал х2,у2 — оң жақ төменгі бұрыш координаталары. Қалыңдығы параметрі – алдыңғы және артқы жақтарының ара қашықтығы, егер ол 0 болса, онда айналасы сызылған төртбұрыш салынады. Ж_Беті параметрі – жоғарғы жақ шеттерін сызуды (1 – TOP_ON ) көрсетеді. Егер ол 0 (TOP_OFF)

болса, сызықтар сызылмайды (бірінің үстіне бірі қойылған бірнеше паралелепипед салу кезінде қажет болады).

Мысалы, бірінің үстіне бірі қойылған бірнеше паралелепипед салу:

setbkcolor (WHITE);

setcolor (GREEN);

bar3d(230,50,250,150,15,1);

bar3d(220,150,260,180,15,1);

bar3d (300, 150, 340, 180, 15, 0);

bar3d (300, 50, 340, 150, 15, 1);

Көпбұрыш салу функциясы

drawpoly(НүктелерСаны,Координаталары);

түзу сызықтардан тұратын тұйық аймақты көпбұрыш сызады. НүктелерСаны параметрі көпбұрыш төбелері санын, Координаталары параметрі сол төбелер координаталарын жиым элементтері ретінде бе­р­е­ді. Жиымның 0-ші және 1-ші элементтері алғашқы нүкте координа­та­лары, 2-ші, 3-ші элементтері – екінші нүкте координа­талары, т.с.с. Енді осы функцияны пайдаланып, алты бұрыш салайық.

// көпбұрыш салу

#include <graphics.h>

#include <conio.h>

#include <stdio.h>

main ()

{

int gdriver=DETECT;

Int gmode;

initgraph (&gdriver,&gmode,"C:\\TC\\bgi");

int x,y,t[14]={450,150, 500,350, 400,400,

150,400, 50,150, 250,80, 450,150};

setcolor(WHITE);

drawpoly(7, t);

 

settextstyle(3,HORIZ_DIR,1);

outtextxy(458,135,"C(450,150)");

outtextxy(508,335,"D(500,350)");

outtextxy(400,400,"E(400,400)");

outtextxy(150,400,"F(150,400)");

outtextxy(38,138,"A (50,150)");

outtextxy(243,55,"B(250,80)");

 

getch();

closegraph();

}

Іші боялған көпбұрыш салу үшін қолданылатын функция

fillpoly (НүктелерСаны,координаталары);

мұндағы НүктелерСаны – төбелер саны, координаталары – жиым элементтері түрінде берілген төбе координаталары.

Әрбір төбе координатасы екі бүтін санмен бері-леді. Бұл функция төбелердің алғашқы нүктесін соңғы нүктесімен қосып, сызықтарды тұйықтап, ішін бояйды. Сызық типі мен бояу түсі setfillstyle() және setfillpattern() функцияларымен анықталады.

Шеңбер сызу функциясы

circle(x,y,r);

радиусы r (бүтін сан), центрінің координаталары (х, у) болатын шең­бер сызады.

Сызық түсі setcolor () функциясымен беріледі. Мысалы, қызыл түсті 5 шеңбер сызайық:

...

setcolor(RED);

for (r=5;r<=25; r+=5)

circle(320,240,r); ...

Доға сызу функциясы

arc(x,у,БұрышБасы,БұрышСоңы,Радиус);

центрінің координатасы (х, у), радиусы берілген доға сызады. БұрышБасы,БұрышСоңы параметрлері бұрышты градуспен горизонталь х өсінен бастап, сағат тіліне қарсы бағытта береді. Радиус параметрі доға радиусын бүтін санмен береді. Бұрыштар мәні периодына сәйкес эквивалентті түрде [0..360] интервалындағы мәндерге келтіріледі. Мысалы, arc(х,у,-45,45,r) және arc(х,у,675,-315,r) шеңбердің бір ширегіне сәйкес бір доғаның екі түрде берілуін көрсетеді.

Эллипс доғасын сызу функциясы

ellipse(x,y, БұрышБасы,БұрышСоңы,rх,rу

);

центрінің координаталары (х, у) эллипс немесе эллипс доғасын сызады. БұрышБасы,БұрышСоңы параметрлері доғаның басы мен соңын градуспен сағат тіліне қарсы береді. rx, ry параметрлері эллипстің көлденең және тік радиустарын береді. Эллипс өстері

к

оординаталар өстеріне параллель болады.