Documente Academic
Documente Profesional
Documente Cultură
RAPORT
Lucrare de laborator nr.6
Chișinău 2021
Cuprins
Introducere............................................................................................................................................
1 Sarcina................................................................................................................................................
Rezultatul Programului.........................................................................................................................
Concluzie...............................................................................................................................................
Bibliografie...........................................................................................................................................
Anexa....................................................................................................................................................
Modelarea proceselor 3D dinamice, pe lângă scopuri pur științifice, poate avea și valoare
aplicativă.
Biblioteca grafică p5.js poate fi utilizată pentru modelare fizică a proceselor dinamice. Ea
ne permite modelarea sistemelor mecanice (în cadrul legilor mecanicii teoretice). Cu ajutorul
p5.js putem simula mișcări de translație și rotație în trei planuri.
Exemplul prezentat în continuare simulează ciocnirea a două sfere cu masele m1 și m2
care până la ciocnire au vitezele deplasări liniare a centrelor, notate cu v1 și v2. După ciocnire
sferele se vor deplasa cu vitezele v’1 și v’2. Sferele se rostogolesc pe o suprafață rigidă, adică
execută o mișcare de rotație care sunt specificate de unghiurile ”omega1” și ”omega2”.
if (x3 <= 0) {
x2 = x3;
} else {
y2 = r;
}
}
function right() {
x1 = r * sin(angle);
y = r * cos(angle);
if (x1 >= 0) {
x = x1;
} else {
y = r;
first = false;
}
}
function draw() {
orbitControl();
background('lightblue');
/*left();
right();*/
cylinder(2.5, 150);
translate(0, 100, 0);
sphere(25);
translate(50, -100, 0);
cylinder(2.5, 150);
translate(0, 100, 0);
sphere(25);
translate(50, -100, 0);
cylinder(2.5, 150);
translate(0, 100, 0);
sphere(25);
//Left
left();
//rotate(-angle)
//translate(2*angle, -2*angle, 0);
translate(-150, -100, 0);
translate(2*x2, 2*y2, 0);
translate(0, -160, 0);
translate(0, 100, 0);
push();
sphere(25, 25);
if (x3 <= 0)
{
rotate(-angle2);
}
translate(0, -100, 0);
cylinder(2.5, 150);
pop();
//Right
right();
translate(0, -100, 0);
translate(200, 60, 0);
translate(-2*x2, -2*y2, 0);
translate(0, -60, 0);
translate(2*x, 2*y, 0);
translate(0, 100, 0);
sphere(25);
if (x1 >= 0)
{
rotate(-angle);
}
translate(0, -100, 0);
cylinder(2.5, 150);
a = -g / r * sin(angle);
v += a;
angle += v;
a2 = -g / r *sin(angle2);
v2 += a2;
angle2 += v2;
}