Una pista, tres dimensions
La pista té $20\,\mathrm{m}$. El carretó comença a $x=1\,\mathrm{m}$ i el límit groc és $x=19\,\mathrm{m}$. La fletxa verda representa l’empenta; la blava, la velocitat; la taronja, el fregament. El color de la càrrega representa la velocitat en el disseny original; no indica temperatura.
Preparant l’escena 3D…
Arrossega sobre l’escena per girar la càmera. També pots utilitzar els controls següents amb el teclat. Girar la càmera no canvia la física.
Canviar massa, velocitat, empenta o fregament reinicia la prova. Pots girar la càmera abans, durant o després de la frenada.
A punt.
Pista horitzontal amb empenta cap a la dreta. Mentre avança, $F_{\mathrm{res}}=F_{\mathrm{empenta}}-F_f$ i $a=F_{\mathrm{res}}/m$. En repòs, si el fregament pot compensar l’empenta, no arrenca. Els paràmetres es fixen abans de començar cada prova. La prova acaba en aturar-se o arribar al límit; no simula una col·lisió. El color no mesura temperatura.
Torna a la classe de forces i movimentEdita el teu carretó 3D
Canvia la forma, els colors i el codi que pinta la càrrega. Les dimensions són paràmetres visuals: la massa i les forces es trien als controls físics. Editar el disseny conserva el temps i el resultat de la prova.
Edita les dimensions amb codi JSON
Modifica un valor i prem «Aplica». Els decimals del codi porten punt; les dimensions s’expressen en $\mathrm{m}$. Una configuració invàlida conserva el disseny anterior.
Disseny original preparat.
Programa els shaders de la càrrega
El vertex shader transforma els vèrtexs 3D; el fragment shader pinta els píxels. Pots editar-los tots dos. La pista, les rodes i les fletxes conserven el seu shader de referència.
u_color és el color de la càrrega; u_time és el temps de simulació; u_speed és la velocitat. u_energy representa, en aquest extra, la velocitat dividida per $6\,\mathrm{m/s}$, limitada a l’interval $[0,1]$.
Editors preparats. WebGL és necessari per aplicar els shaders.
La deformació és visual: no canvia la massa ni calcula col·lisions. Si el codi no compila, es conserva l’últim shader vàlid. Si WebGL falla, el visor utilitza un renderitzador 3D compatible: continuen funcionant la càmera, la geometria i les lectures físiques. Els shaders necessiten WebGL per aplicar-se.
El fitxer desa geometria, colors i shaders. Les dades es descarreguen al teu ordinador; no s’envien a cap servidor.
Tres reptes guiats per a FP1
Objectius: reconèixer les tres dimensions, editar una forma i un color, i calcular una acceleració senzilla. Treballa amb una parella i anota al paper què has canviat.
- Dissenya. Canvia només l’alçada de la càrrega i el color. Gira la càmera per comprovar el canvi. Descarrega el disseny i torna’l a obrir.
- Calcula abans de provar. Fixa $m=4\,\mathrm{kg}$, $v_0=0\,\mathrm{m/s}$, empenta de $12\,\mathrm{N}$ i fregament de $4\,\mathrm{N}$. Resta les forces i divideix entre la massa. Avança mig segon i comprova l’acceleració.
- Pinta amb codi. Selecciona «Color fix», canvia els decimals de
vec3i aplica. Reinicia i repeteix el cas anterior. Canviar el color o la geometria modifica l’acceleració? Compara amb una prova on només dobles la massa.
Reforç: comença pels controls visuals i els shaders d’exemple. Ampliació: prova la deformació dels vèrtexs i explica la diferència entre dibuixar amb la GPU i calcular forces amb JavaScript.
Idea clau: el carretó és una geometria 3D amb coordenades $(x,y,z)$. El shader transforma i pinta la càrrega; els controls de massa i forces determinen la física.
Solucions de l’extra de FP1
La força resultant és $12-4=8\,\mathrm{N}$ i l’acceleració $a=8/4=2\,\mathrm{m/s^2}$. Després de $0{,}5\,\mathrm{s}$, la velocitat és $1\,\mathrm{m/s}$. Canviar el color, la forma o la càmera no modifica aquest càlcul. Amb $m=8\,\mathrm{kg}$, la mateixa força resultant produeix $a=1\,\mathrm{m/s^2}$. El fitxer desat recupera geometria i shaders; la massa es continua triant als controls de física. És una ampliació preparada de la classe 10, no una confirmació d’impartició.