Limbaje de programare - Laborator 2

În acest laborator vom exersa

Mișcarea unui obiect în plan

Vom lucra cu un fragment de program, fișierul biliard.c care animează în mod grafic, pe ecran, mișcarea în plan unui obiect. Nu trebuie să studiem în detaliu acest fișier, care conține o serie de apeluri de funcții grafice. Remarcăm insă: Deși fișierul dat conține programul principal main (vom discuta pe parcursul semestrului ce înseamnă argumentele, spre deosebire de varianta cu void), acesta nu este un program complet, deoarece nu conține și definițiile funcțiilor new_vx și new_vy (cu tot cu corpul lor), și deci nu e precizat ce și cum fac aceste funcții.

În această lucrare vom defini funcțiile respective, pentru a obține un program complet care vizualizează pe ecran mișcarea unui obiect. Mai concret, vom modela mișcarea în plan a unei bile, considerată punctiformă, ea fiind însă reprezentată pe ecran ca un cerc.

Cele două funcții cerute definesc noua viteză după o unitate de timp (corespunzând intervalului dintre două reprezentări succesive în animație), în funcție de vechea viteză și poziție, pentru fiecare din cele două componente (pe axele x și y).

double new_vx(double vx, double x, double xmax);
unde vx reprezintă vechea viteză și x poziția curentă (ambele pentru axa x), iar xmax dimensiunea suprafeței de mișcare, un dreptunghi cu coordonatele limită (0,0) și (xmax, ymax). Cunoașterea limitelor e necesară pentru a modela comportamentul (posibil diferit) al bilei când ajunge la margine. Totul e similar pentru viteza pe axa y.

Scrieți cele două funcții new_vx și new_vy într-un fișier separat, numit viteza.c. Aveți deja dat un fișier Makefile pentru utilitarul make, care specifică cum să fie compilat programul rezultant (numit bila) din cele două fișiere componente. Pentru a lansa compilarea, rulați, din catalogul unde ați salvat toate fișierele, comanda

make bila
care va apela compilatorul gcc cu opțiunile necesare, apoi rulați programul rezultat cu comanda
./bila
Puteți abandona rularea programului tastând Control-C în terminalul de unde ați lansat programul.

Pentru a lucra acasă, în Linux sau Windows, bibliotecile grafice sunt configurate ușor diferit:

Încercați să modelați una din următoarele situații:


Marius Minea
Last modified: Wed Mar 3 11:18:26 EET 2009