GENERADOR DE PÁGINAS WEB HTML5+THREE.JS DE SIMULACIONES
FÍSICAS |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GUIA DE USO |
|
|
|
DATOS
GENERALES Y DE INICIO DE SIMULACIÓN |
|
|
|
|
|
|
|
|
|
|
DESCRIPCION |
|
texto descriptivo de la simulación
concreta |
|
|
|
|
|
|
|
|
|
DIRECTORIO |
D:\3DPPT\ |
directorio donde se grabará el
fichero de salida "index.html". Debe contener las librerias
three.min.js, dat.gui.min.js y firstpersoncontrols.js |
|
ESCALA F. |
|
factor de escala de las flechas de
fuerza en los objetos tipo TESTIGO |
|
|
|
|
|
|
|
TAM.TRAZA |
2000 |
longitud de la traza (número de
pasos de la simulación) de los objetos marcados con "SI" en la
columna TRAZA de la lista de objetos |
|
|
VELOCIDAD |
90 |
velocidad de la simulación, entre
42 (más lento, tiempo real) y 100 (más rápido). Una simulación muy rápida
puede ir acumulando errores por el método de simulación empleado |
|
SEGMENTOS |
16 |
número de segmentos al dibujar cada
esfera. A mayor número, mayor precisión pero mayor carga de memoria.
Recomendado 16 |
|
|
TAM. EJES. |
200 |
si >0, dibuja ejes ordenados XYZ
en el origen, en colores RGB respectivamente, con el tamaño informado. Se
hacen visibles o invisibles con el check "flechas" de los controles |
|
PARADO |
SI |
si es SI, la simulación se carga en
el navegador inicialmente detenida. Quitar el check en el control
"para" para iniciar |
|
|
|
SOMBRAS |
|
si es SI, los objetos proyectan
sombras sobre el suelo (marca el check "sombra" al inicio de la
simulación) |
|
|
|
|
FLECHAS |
SI |
si es SI, se dibuja el vector
velocidad en los objetos con valor SI en la columna FLECHAS de la lista de
objetos (marca el check en el control "flechas" desde el inicio) |
|
SUELO |
|
si es SI, se dibuja el suelo (con
coordenada Y=0) desde el inicio de la simulación (se puede cambiar con el
check del control "suelo") |
|
|
COLORSUELO |
0xAAAAAA |
color del suelo en formato
hexadecimal, con formato "0xRRGGBB", donde RR son dos dígitos
hexadecimales de la componente roja, GG verde y BB azul |
|
T.PARADA |
|
instante en el que la simulación se
detiene (se puede continuar con el check del control "para") |
|
|
|
|
|
COLORFONDO |
0xAAAAAA |
color del fondo en formato
hexadecimal, con formato "0xRRGGBB", donde RR son dos dígitos
hexadecimales de la componente roja, GG verde y BB azul |
|
TEXTOS |
|
si, no o vacío; insertar textos en
luegar de geometría (esfera o cubo), si se indica un texto en la columna
TEXTO de la lista de objetos |
|
|
COLOR PTO |
|
color de los objetos tipo PUNTO
(aplica a todos los Puntos; se ignora el color informado en cada objeto tipo
PUNTO) |
|
|
|
TAM. PTO |
|
tamaño de los objetos tipo PUNTO
(aplica a todos los Puntos; se ignora el tamaño informado en cada objeto tipo
PUNTO) |
|
|
|
|
|
|
|
|
|
|
|
|
|
DATOS
DE POSICIÓN DE CÁMARA |
|
|
|
|
|
|
|
|
|
|
|
Indicar
posición de la cámara, o nº de orden del objeto en
el que se sitúa y al que está mirando. |
|
|
|
|
|
|
|
|
|
|
|
|
la
cámara se puede mover con las teclas AWSDRF (izq,
acercar, alejar,der,arriba,abjao) y si se pulsa Q, con la posición del ratón
en la ventana del navegador |
|
|
|
|
|
|
|
|
|
|
|
|
pulsando
la tecla Q consecutivamente se activa/desactiva el
movimiento de la cámara con el ratón |
|
|
|
|
|
|
|
|
|
|
|
|
|
POS_X |
POS_Y |
POS_Z |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CAMARA |
0 |
10 |
300 |
posición de la cámara fija, en
coordenadas XYZ. No se utiliza si se define "cámara en objeto" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EN OBJETO |
21 |
número de orden del objeto (primera
columna de la lista de objetos) al que se adocia la cámara, que se mueve con
este objeto |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
si se indica "en objeto",
la cámara no se puede mover con el teclado a no ser que se pare la
simulación. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MIRANDO A |
11 |
objeto al que está dirigida la
cámara de forma continua. Si no se indica, apunta a la posición (0,0,0). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"EN OBJETO" y "MIRANDO A", junto con una velocidad constante
de todas las partículas y la activación de la traza permite mantener fija la
simulación y obtener una gráfica en el tiempo del movimiento de la partícula |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MIRANDO X Y Z |
|
coordenadas hacia las que se enfoca
la cámara (alternativa a "MIRANDO A"). Por defecto, 0,0,0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NIEBLA |
NO |
si es SI, aplica un efecto niebla |
|
|
|
|
|
|
|
|
|
|
|
DATOS
DE LA SIMULACIÓN FÍSICA |
|
|
|
|
|
|
|
|
|
|
|
fuerzas físicas aplicadas a las partículas (sólo a los objetos tipo
ESFERA) |
|
|
|
|
|
|
|
|
|
|
|
|
|
TIPO 0: ninguna; 1: grav; 2:elastica; ;3:electrostatica;4: gravedad
limitada a R; VECINOS: SI: primeros vecinos; NO: todos;SIC: primeros vecinos
ciclico;SI2:RED 2D |
|
|
|
|
|
|
|
|
|
|
|
|
|
COLISIONES |
|
si es SI, las esferas son sólidas y
colisionan entre sí |
|
|
|
|
|
|
|
|
TAM.CAJA |
|
si se indica un valor mayor que 0,
se detectan colisiones con las paredes de una caja de dicho tamaño. La caja
no se dibuja. Utilizar objetos tipo CUBO para dibujar la caja si se desea. |
|
L. RIGIDAS |
|
si es SI, los objetos tipo LINEA,
que unen dos objetos (ESFERAs o CUBOs) sin de longitud fija y las partículas
unidas se mueven conforme a dicha ligadura |
|
TIPO FUERZA |
2 |
tipo de fuerza entre ESFERAs: 0: ninguna; 1: gravitatoria; 2:elástica;
;3:electrostática;4: gravedad limitada al tamaño de la esfera;5: elástica con
el mínimo de energía a una distancia no nula |
|
|
|
en la columna MASA se indica la
masa de la ESFERA (inercial y gravitatoria); en la columna K, la constante
elástica (la K total es el producto de Ki*Kj) o la carga eléctrica |
|
LIM TAM |
|
si es SI, cuando las dos esferas
están en contacto, no aplica ninguna fuerza (evita en parte el colapso de las
esferas en fuerzas atractivas con simulaciones rápidas) |
|
VECINOS |
SI |
NO o vacío: la fuerza aplica entre
todos los pares de ESFERAs; SI: la fueza aplica sólo entre primeros vecinos
(objeto N y N+1); SIC: primeros vecinos con última esfera conectada a la
primera; |
|
|
|
SI2: conexiones entre partículas en
malla 2D |
|
|
|
|
|
|
|
|
TAM RED 2D |
|
tamaño de la malla 2D si
VECINOS=SI2 (si el tamaño es L, los objetos 1 a L*L deben ser esferas y
forman la malla en filas de longitud L) |
|
|
GRAV.VERT. |
|
aplica a todas las ESFERAs una
aceleración de dicha magnitud constante en la dirección -Y |
|
|
|
|
|
MIN. ELAST |
|
si tipo de fuerza es 5 (elástica
con mínimo de energía en distancia no nula, especifica la distancia entre
partículas en las que está este mínimo |
|
FRICCION |
0.005 |
aplica una fuerza F=-K*V, donde K
es el valor que se indique y V es la velocidad. En blanco para no aplicar.
DIR.FRIC indica los ejes sobre los que se aplica la componente de fricción. |
|
DIR.FRIC. |
YZ |
indica las direcciones sobre las que
se aplica la fuerza de fricción (posibles valores: X,Y,Z, XY, XZ, YZ, ZYZ) |
|
|
|
|
FX(X,Y,Z) |
|
fuerza en la dirección X que se
aplica a todas las esferas, en función de su posición XYZ y del instante T |
formulas con formato javascript con
X,Y,Z,T en mayusculas |
|
FY(X,Y,Z) |
|
fuerza en la dirección Y que se
aplica a todas las esferas, en función de su posición XYZ y del instante T |
|
|
|
|
FZ(X,Y,Z) |
|
fuerza en la dirección Z que se
aplica a todas las esferas, en función de su posición XYZ y del instante T |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FX, FY y FZ son fórmulas con
formato javascript con las variables X,Y,Z,T en mayusculas. Pueden usarse
funciones Math.* de javascript. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LISTA
DE OBJETOS |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Usar
punto en lugar de coma para decimales; para CUBO, columnas MASA y K son
tamaños;LINEA, indicar nº orden objeto "de" "a" en
columnas POS_X y POS_Y |
|
|
|
las
casillas numéricas pueden contener fórmulas (por ejemplo, calcular la
velocidad V según la posición para que en una simulación de la gravedad la
órbita sea circular) |
|
|
|
tipo ESFERA:
tiene masa y se aplica la física |
|
|
|
|
|
|
|
tipo CUBO:
no tiene masa, no se le aplica la física. Mantiene la velocidad inicial
definida en VX, VY, VZ de forma constante |
|
|
|
tipo LINEA:
cilindro que une dos objetos (ESFERAs o CUBOs). Si es RÍGIDA, mantiene su
longitud constante y afecta a la física de las partículas como una ligadura |
|
|
|
tipo
TESTIGO: se define exactamente igual que esfera, pero no interactua. Dibuja
un vector proporcional a la fuerza. Sirve para representar la fuerza aplicada
en el punto donde se encuentra. Se puede mover con velocidad constante. |
|
tipo
FUENTE: se define exactamente igual que esfera, no interactúa con el resto de
objetos, pero sí ejerce fuerza sobre el resto de objetos y colisiona |
|
|
|
tipo
LOADER: se define como la esfera, pero para la carga de la geometría con un
loader, se utiliza el código en la columna CODIGO L (debe incluir la
asignación geometrias=…) y del material en CODIGO M (debe incluir
materiales….). Requiere incluir explícitamente el
código THREE JS. |
loader = new THREE.JSONLoader();loader.load(
"obj/leeperrysmith/LeePerrySmith.js", function( geometry )
{geometrias=geometry; |
var textureLoader = new
THREE.TextureLoader();materiales = new THREE.MeshPhongMaterial( {color:
0xdddddd,specular: 0x222222,shininess: 35,map: textureLoader.load(
"obj/leeperrysmith/Map-COL.jpg" ),specularMap: textureLoader.load(
"obj/leeperrysmith/Map-SPEC.jpg" ),normalMap: textureLoader.load(
"obj/leeperrysmith/Infinite-Level_02_Tangent_SmoothUV.jpg"
),normalScale: new THREE.Vector2( 0.8, 0.8 )} ); |
|
tipo
LOADERO: se define como la esfera, pero para la carga de un objeto completo
con un loader, se utiliza el código en la columna CODIGO L (debe incluir la
asignación objetos[i]=…). Requiere incluir explícitamente el código THREE JS. |
loaderr = new
THREE.ObjectLoader(); loaderr.load(
"r2d2js/r2-d2.json", function(r2d2 ) {objetos[i]=r2d2; |
|
tipo PUNTO:
comportamiento igual al de ESFERA. Todos los puntos tienen el mismo tamaño y
color (en parámetros TAM PTO y COLOR PTO). Renderizado más eficiente que
esferas, útil para gran cantidad de objetos |
|
|
|
|
IMPORTANTE:
Los objetos tipo línea deben estar siempre al final de la lista, después de
ESFERAS y CUBOS. |
|
|
|
|
|
|
|
|
|
|
|
|
Nº ORDEN |
TIPO (CUBO,ESFERA) |
POS_X |
POS_Y |
POS_Z |
TAMAÑO_X |
MASA/tam_y |
K/tam_z |
ROTACION_X |
ROTACION_Y |
ROTACION_Z |
COLOR_R |
COLOR_G |
COLOR_B |
VX |
VY |
VZ |
TRAZA (SI/) |
FLECHA |
TEXTURA |
TEXTO |
TAMAÑO |
FONDO |
BISEL GR. |
BISEL TAM. |
codigo L |
codigo M |
id. del objeto |
tipo |
posición X |
posición Y |
posición Z |
|
0 a 255 |
0 a 255 |
0 a 255 |
velocidad inicial |
|
dibuja traza |
dibuja vector velocidad |
fichero con textura |
texto |
tamaño |
grosor |
grueso del |
tamaño del |
|
1 |
ESFERA |
posición X |
posición Y |
posición Z |
radio |
masa |
constante elástica o carga |
|
0 a 255 |
0 a 255 |
0 a 255 |
velocidad inicial |
0 |
0 |
dibuja traza |
dibuja vector velocidad |
xxx/xxxx.xxx |
en lugar de |
del texto |
del texto |
bisel |
bisel |
|
2 |
TESTIGO |
posición X |
posición Y |
posición Z |
radio |
masa |
constante elástica o carga |
|
0 a 255 |
0 a 255 |
0 a 255 |
velocidad inicial |
0 |
0 |
dibuja traza |
dibuja vector velocidad |
|
geometría |
|
3 |
FUENTE |
posición X |
posición Y |
posición Z |
radio |
masa |
constante elástica o carga |
|
0 a 255 |
0 a 255 |
0 a 255 |
velocidad inicial |
0 |
0 |
dibuja traza |
dibuja vector velocidad |
|
4 |
CUBO |
posición X |
posición Y |
posición Z |
ancho |
alto |
fondo |
rotación del cubo en direcciones XYZ |
0 a 255 |
0 a 255 |
0 a 255 |
velocidad inicial |
0 |
0 |
dibuja traza |
dibuja vector velocidad |
|
5 |
LINEA |
objeto "desde" |
objeto "a" |
se ignora |
radio del cilindro |
se ignora |
se ignora |
|
|
0 a 255 |
0 a 255 |
0 a 255 |
se ignora |
se ignora |
se ignora |
|
|
|
6 |
LOADER |
posición X |
posición Y |
posición Z |
radio |
masa |
constante elástica o carga |
|
0 a 255 |
0 a 255 |
0 a 255 |
velocidad inicial |
0 |
0 |
dibuja traza |
dibuja vector velocidad |
|
geometry |
material |
7 |
LOADERO |
posición X |
posición Y |
posición Z |
radio |
masa |
constante elástica o carga |
|
0 a 255 |
0 a 255 |
0 a 255 |
velocidad inicial |
0 |
0 |
dibuja traza |
dibuja vector velocidad |
|
objeto |
|
8 |
PUNTO |
posición X |
posición Y |
posición Z |
N/A |
masa |
constante elástica o carga |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
velocidad inicial |
0 |
0 |
dibuja traza |
dibuja vector velocidad |
|
|
|
|
|
|
|
Nº ORDEN |
ordinal consecutivo comenzando con 1 |
|
|
|
|
|
|
TIPO (CUBO,ESFERA) |
debe ser CUBO, ESFERA o LINEA. El
CUBO no interacciona con ningún otro elemento. La esfera interacciona según
el tipo de fuerza y su masa |
|
|
|
POS_X |
posición X del objeto |
|
|
|
|
|
POS_Y |
posición Y del objeto |
|
|
|
|
|
POS_Z |
posición Z del objeto |
|
|
|
|
|
TAMAÑO_X |
ESFERA: radio de la esfera; CUBO:
tamaño en la dirección X |
|
|
|
|
|
MASA/tam_y |
ESFERA: masa de la esfera; CUBO:
tamaño en la dirección Y |
|
|
|
|
|
K/tam_z |
ESFERA: para fuerzas elásticas, ki
en F=-ki*kj*d; para fuerzas electrostáticas, carga, positiva o negativa; para
gravedad, sin efecto. CUBO: tamaño en la dirección Z |
|
|
|
ROTACION_X |
rotación en torno al eje X del
objeto |
|
|
|
|
|
ROTACION_Y |
rotación en torno al eje Y del
objeto |
|
|
|
|
|
ROTACION_Z |
rotación en torno al eje Z del
objeto |
|
|
|
|
|
COLOR_R |
componente R entre 0 y 255 del color
del objeto |
|
|
|
|
|
COLOR_G |
componente G entre 0 y 255 del color
del objeto |
|
|
|
|
|
COLOR_B |
componente B entre 0 y 255 del color
del objeto |
|
|
|
|
|
VX |
velocidad inicial del objeto en la
dirección X |
|
|
|
|
|
VY |
velocidad inicial del objeto en la
dirección Y |
|
VZ |
velocidad inicial del objeto en la
dirección Z |
|
TRAZA (SI/) |
SI: el objeto deja traza (línea de
color negro con el movimiento descrito por el objeto); vacío o cualquier otro
valor: sin traza |
|
FLECHA |
se dibuja el vector velocidad ligado
al objeto |
|
TEXTURA |
nombre del fichero con la textura a
aplicar al objeto. Debe estar en el mismo directorio que index.html, o en
subdirectorios de este utilizando / |
|
TEXTO |
texto a insertar en lugar de la
geometría(esfera o cubo), si TEXTOS=Sx. Si está vacío, se ignora. |
|
TAMAÑO |
tamaño del texto |
|
|
|
FONDO |
grosor o fondo del texto |
|
BISEL GR. |
grosor del bisel del texto |
|
|
|
BISEL TAM. |
tamaño del bisel del texto |
|
CODIGO l |
código JS THREE para carga de la
geometría del objeto o el objeto json. Tiene que asignarse la variable
geometrias u objetos[i]. Para usar loaders. Controla el cierre de la función
de callback al final del setup world |
|
CODIGO M |
código JS THREE para carga del
material del objeto. Tiene que asignarse la variable materiales. |
|
|
HOJA EVENTOS |
esta hoja indica las modficaciones
en las propiedades de objetos a partir de un instante dado. Cada modificación
puede ser en valor absoluto o en incremento |
|
Para
definir el fin de una acción, poner una fila adicional a continuación, para
el mismo objeto, en T+1, sin nada más de definición en toda la fila |
|
|
OBJETO |
indice del objeto, desde 1 hasta N,
en el mismo orden en que aparece en la tabla de objetos |
|
TIEMPO |
instante a partir del cual se aplica
la modificación de propiedades |
|
VX |
velocidad X |
|
VY |
velocidad Y |
|
VZ |
velocidad Z |
|
ABS/INC V |
Absoluto o incremental (se
incrementa en que cada paso de la simulación). Si no comienza por A o I, no
se aplica modificación a la velocidad |
|
ROTX |
rotación X |
|
ROTY |
rotación Y |
|
ROTZ |
rotación Z |
|
ABS/INC R |
Absoluto o incremental (se
incrementa en que cada paso de la simulación). Si no comienza por A o I, no
se aplica modificación a la rotación |
|
POSX |
posición X |
|
POSY |
posición Y |
|
POSZ |
posición Z |
|
ABS/INC P |
Absoluto o incremental (se
incrementa en que cada paso de la simulación). Si no comienza por A o I, no
se aplica modificación a la posición |
|
ESCALA X |
escala de tamaño del objeto en la
dirección X |
|
ESCALA Y |
escala de tamaño del objeto en la
dirección Y |
|
ESCALA Z |
escala de tamaño del objeto en la
dirección Z |
|
ABS/INC E |
Absoluto o incremental
multiplicativo (se incrementa en que cada paso de la simulación). Si no
comienza por A o I, no se aplica modificación a la posición |
|
VISIBLE (SI/NO) |
se hace visible si SI e invisible si
NO. No hace nada si no tiene alguno de estos valores. |
|
COMANDO |
comandos javascript que se ejecutan
a partir del instante dado |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|