Proiect: Soft Square

De la WikiLabs
Jump to navigationJump to search

Definiție

Tema de proiect este emularea fenomenelor fizice (gravitație, ciocniri, frecare) asupra unui corp deformabil (de formă pătrata în starea relaxată).

Cerințe

Cerința 1

Pe ecranul monitorului va aparea un cadru de 20 pixeli colorat in albastru, verde sau alb, culoarea lui fiind aleasa cu ajutorul tastaturii potrivit unei cerinte din cele 3 variante:

Varianta a) Se introduce de la tastatura litera “C”. Dupa aceasta operatiune se pot introduce de la tastatura una dintre litere “b”, “g” si “w”, cadrul aparand in culoarea respectiva.

Varianta b) Se introduce de la tastatura litera “C”. Dupa aceasta operatiune se pot introduce de la tastatura una dintre cifrele “1”, “2” si “3”, cadrul aparand in culoarea asociata.

Varianta c) Se introduce de la tastatura litera “C”. Se introduc de la tastatura 1, 2 sau 3 spatii (“space” key) si se mai apasa o data litera “C”. Cadrul apare in culoarea asociata numarului de “spatii” introduse.

Nerespectarea oricarei succesiuni de litere, cifre sau spatii conduce la resetarea menu-ului.

Cerința 2

Pe ecranul monitorului apar in coltul stanga sus 4 patrate albe (latura fiecarui patrat fiind de 5 pixeli). Centrele acestor patrate formeaza un patrat de latura 20 pixeli.

Cerința 3

Pozitia patratelor se va modifica potrivit informatiei preluate de la tastatura. Pozitia relativa a patratelor este constanta, deplasarea lor sincrona fiind determinata potrivit unei cerinte din cele 3 variante:

Varianta a) Se introduce de la tastatura litera “S”. Se apasa oricare din sageti, la fiecare apasare patratele modificandu-si pozitia cu 3 pixeli in directia respectiva. Pozitia finala este determinata de apasarea literei “s”.

Varianta b) Se introduce de la tastatura litera “S”. Apasarea tastei “TAB” muta patratele cu 15 pixeli la dreapta. In momentul in care patratele ar depasi marginea din stanga, in mod automat patratele se muta pe randul urmator (cu 30 pixeli mai jos) la inceputul lui (sub pozitia initiala - stanga). Poztia finala este determinata de apasarea literei “s”.

Varianta c) Se introduce de la tastatura litera “S”. Se introduce de la tastatura litera “x” si apoi numarul de pixeli dorit pentru mutarea pe axa x a patratelor. Se introduce de la tastatura litera “y” si apoi numarul de pixeli dorit pentru mutarea pe axa y a patratelor.

Nerespectarea oricarei succesiuni de litere, cifre sau spatii conduce la resetarea menu-ului (starea de asteptare a literei “S”).

Cerința 4

Distanta dintre patrate se va modifica la apasare tastei “A” potrivit algoritmului descris de o cerinta din cele 3 variante:

Varianta a) Daca patratul mare este intr-o pozitie care il face sa fie apropiat de o latura a monitorului (distanta oricarui colt pana la margine mai mica de 20 de pixeli) isi va micsora latura la 15 pixeli, coltul fix la recalculare fiind cel mai apropiat de laturile monitorului.

Varianta b) Daca centrul patratului este in centrul ecranului (delimitat de un patrat de latura 100 pixeli) is va creste latura la 25 pixeli. Centrul patratului ramane fix.

Varianta c) Daca doua patrate se afla in stanga ecranului si doua in dreapta lui dimensiunea laturii va creste la 30 pixeli. Centrul patratului ramane fix.

Cerința 5

La apasarea tastei “g” patratele pornesc cu o viteza initiala de 4 pixeli / refresh spre dreapta. Patratele se deplaseaza sincron pe ecran. In orice moment putem modifica sensul si directia vitezei cu ajutorul tastaturii: se lasa echipei decizia cum va implementa aceasta functionalitate, dar va trebui sa mimeze functionalitatea data de potentiometrul existent pe alte placute de dezvoltare (rotirea in sens trigonometric produce o modificare a vitezei cu o acceleratie unghiulara in sens trigonometric, rotirea in sens orar produce efect contrar)

Cerința 6

In momentul ciocnirii cu marginea ecranului definita de cadrul mentionat la Sub-obiectivul 1 toate patratele (formand un patrat rigid) isi schimba viteza astfel incat sa se simuleze ciocnirea elastica cu cadrul.

Cerința 7

Daca se apasa tasta “X” se adauga efectul suplimentar definit de o cerinta din urmatoarele 3:

Varianta a) acceleratie gravitationala

Varianta b) ciocnirea este plastica, patratul care se ciocneste pierzand 5% din energie

Varianta c) exista o forta de frecare continua proportionala cu viteza coltului

Cerința 8

Daca se apasa tasta “R” cadrul format din cele 4 patrate isi pierde rigiditatea. Astfel, intre cele 4 patrate vor exista 6 resorturi initial netensionate. '

Refererințe