infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Sasa Pastor din Ianuarie 29, 2007, 11:23:06



Titlul: un grafic
Scris de: Sasa Pastor din Ianuarie 29, 2007, 11:23:06
bai...am si eu o pb aparent existentiala: cum naiba poti crea in C graficul unei functii de gradul 3. adica exista vreo functie care sa "coloreze" dupa coordonate?mersi
 ](*,) 


Titlul: Raspuns: un grafic
Scris de: Valentin Stanciu din Ianuarie 29, 2007, 15:11:44
O metoda generala care imi vine mie in minte este ceva de genul:
iti alegi o precizie Eps (sa zicem 0.1), apoi mergi din Eps in Eps si calculezi cat iti da functia pentru valoarea respectiva, apoi introduci datele intr-o poza..

Poti sa o gandesti putin invers: sa zicem ca ai o poza de 100pixeli pe 100 pixeli (sau sa nu o numim neaparat poza; mai degraba 'suprafata de desen' :) ). Iti alegi intervalele pe care calculezi (sa zicem de la 0 la 1000 pe axa x), asta rezulta o precizie de 10 (fiecare pixel reprezinta valoarea functiei din 10 in 10 unitati). Faci la fel si pe verticala (sa zicem ca vrei date intre 0 si 1000) si incepi sa 'colorezi' :) Initial poza e goala (alb), calculezi f(0) (sa zicem ca da 100), colorezi cu rosu pixelul 0,100. Calculezi f(10), colorezi pixelul 10,f(10) si tot asa.. (daca iese din surafata de desen, nu colorezi nimic :) ).. Asta e o metoda simpla de a desena..
Pentru lucrul efectiv cu poza, se gasesc librarii deja implementate cred.. Parca si MFC (Microsoft Foundation Class) avea ceva in genul asta - sa desenezi pe fereastra unei aplicatii ce vrei tu
Asa poti desena orice functie aproape (adica si cu logaritm, de ce grad vrei tu, etc)

Dar cred ca exista si metode mai destepte (poti incerca si cu openGL; GLUT mai exact)

Sper ca te ajuta cu ceva :D

btw, ai castigat pariul ;)