Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Desenarea si colorarea figurilor geometrice

c



+ Font mai mare | - Font mai mic



Desenarea si colorarea figurilor geometrice

Biblioteca standard pune la dispozitia utilizatorului o serie de functii care permit desenarea si colorarea unor figuri geometrice:



void far putpixel(int x, int y, int culoare) - afiseaza un pixel pe ecran in punctul de coordonate (x,y) (relativ la fereastra activa) si avand culoarea culoare;

unsigned far getpixel(int x, int y) - determina culoarea unui pixel aflat pe ecran in pozitia (x,y);

void far moveto(int x, int y) - muta cursorul in dreptul pixelului de coordonate (x,y);

void far moverel(int dx, int dy) - muta cursorul in dreptul pixelului de coordonate (x+dx,y+dy), unde (x,y) reprezinta coordonatele pixelului curent;

void far line(int xi, int yi, int xf, int yf) - traseaza un segment de dreapta intre punctele de coordonate (xi,yi) si (xf,yf);

void far lineto(int x, int y) - traseaza un segment de dreapta intre punctul curent si punctul de coordonate (x,y);

void far linerel(int dx, int dy) - traseaza un segment de dreapta intre punctul curent si punctul de coordonate (x+dx,y+dy), unde (x,y) sunt coordonatele punctului curent;

void far arc(int xcentru, int ycentru, int unghistart, int unghifin,int raza) - traseaza un arc de cerc, unghiurile fiind exprimate in grade sexagesimale;

void far circle(int xcentru, int ycentru, int raza) - traseaza un cerc, cu (xcentru,ycentru) coordonatele centrului si raza raza acestuia;

void far ellipse(int xcentru, int ycentru, int unghistart, int unghifin,int semiaxamare, int semiaxamica) - traseaza un arc de elipsa cu centrul in punctul de coordonate (xcentru,ycentru), semiaxa mare definita de parametrul semiaxamare iar semiaxa mica definita de parametrul semiaxamica;

void far rectangle(int st, int sus, int dr, int jos) - traseaza un dreptunghi definit de colturile diagonal opuse;

void far drawpoly(int nr, int far* tabpct) - traseaza o linie polignala, parametrul nr specificand numarul de laturi iar tabpct este un pointer spre un tablou de intregi ce definesc varfurile liniei poligonale pastrate sub forma: abscisa_i,ordonata_i unde i are valorile 1,2,.., nr+1;

void far setlinestyle(int stil, unsigned sablon, int grosime) - defineste stilul utilizat pentru trasarea liniilor, unde:

stil - este un intreg din intervalul [0,4] care defineste stilul liniei conform urmatorului tabel:

Constanta simbolica

Valoare

Stil

SOLID_LINE

0

Linie continua

DOTTED_LINE

1

Linie punctata

CENTER_LINE

2

Linie intrerupta formata din liniute de doua dimensiuni

DASHED_LINE

3

Linie intrerupta formata din liniute de aceeasi dimensiune

USERBIT_LINE

4

Stil definit de utilizator prin sablon

sablon - defineste stilul liniei si are sens doar cand parametrul stil are valoarea 4;

grosime - defineste latimea liniei in pixeli, astfel: NORM_WIDTH - valoarea 1 pixel si THICK_WIDTH - valoarea 3 pixeli.

void far getlinesettingstype(struct linesettingstype far* linieinfo) - este utilizata pentru a determina stilul curent;

void far bar(int st, int sus, int dr, int jos) - are aceeasi semnificatie cu functia rectangle insa dreptunghiul este colorat;

void far bar3d(int st, int sus, int dr, int jos, int profunzime, int ind) - functia deseneaza o prisma colorata pentru ind diferit de zero; pentru ind=0, nu se traseaza partea de sus a prismei;

void far pieslice(int xcentru, int ycentru, int unghistart, int unghifin,int raza) - deseneaza un sector de cerc colorat;

void far fillpoly(int nr, int far* tabpct) - deseneaza un poligon colorat;

void far fillellipse(int xcentru, int ycentru, int semiaxamare, int semiaxamica) - deseneaza o elipsa colorata;

void far setfillstyle(int hasura, int culoare) - defineste modul de colorare al figurilor, astfel:

culoare - defineste culoarea utilizata pentru hasurare;

hasura - defineste hasura utilizata pentru colorare conform tabelului:

Constanta simbolica

Valoare

EMPTY_FILL

0

SOLID_FILL

1

LINE_FILL

2

LTSLASH_FILL

3

SLASH_FILL

4

BKSLASH_FILL

5

LTBKSLASH_FILL

6

HATCH_FILL

7

XHATCH_FILL

8

INTERLEAVE_FILL

9

WIDE_DOT_FILL

10

CLOSE_DOT_FILL

11

USER_FILL

12

void far setfillpattern(char far *h_utilizator,int culoare) - este utilizata pentru a defini o hasura a utilizatorului, astfel:

culoare - defineste culoarea de hasurare;

h_utilizator - este un pointer spre o zona de memorie care defineste hasura utilizatorului;

void far getfillsettings(struct fillsettingstype far* stilculoare) - este utilizata pentru determinarea stilului curent de colorare;

void far floodfill(int x, int y, int culoare) - este o functie utilizata pentru colorarea unui domeniu inchis, astfel:

(x,y) - reprezinta coordonatele unui punct din interiorul domeniului inchis;

culoare - defineste culoarea utilizata la trasarea conturului figurii (interiorul este colorat in conformitate cu setarile efectuate de functia setfillstyle).

Exemplu: Prezentam in acest exemplu un model de utilizare a modului grafic pentru trasarea graficelor unor functii matematice elementare.

#include <stdio.h>

#include <math.h>

#include <graphics.h>

#include <conio.h>

int x,y;

float a,b;

void desen(void) //functia care deseneaza axele si

//coloreaza ecranul

void interval(int l1, int l2) //functia care verifica

// daca intervalele pe care sunt definite functiile

// trigonometrice, sunt respectate

desen();}

void grafic(float (*trig)(float))//functia care traseaza

// graficul functiilor trigonometrice

float sinx (float x)

float cosx(float x)

float tanx(float x)

float ctanx(float x)

float acosx(float x)

float asinx(float x)

float atanx(float x)

float actanx(float x)

void main()

printf('Dati intervalul: n');

do while(a>b);

desen();

switch(t)

getch();

clrscr();

cleardevice();

setbkcolor(0);

printf('Doriti graficul altei functii? 1-DA 0-NU :');

scanf('%d', &l);

if (l==1)}

closegraph(); }



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1237
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved