Foros 3D > Ejercicios

Formulas matematicas, del papel al codigo.

(1/3) > >>

povmaniaco:
Bueno... pues creo que es justo reconocer que no me ha sido nada facil decidirme por el problema o tarea a plantear. La primera cuestión viene al hilo del comentario sobre la probable participación en estos ejercicios dado que no es un tema muy 'popular'. Eso me ha hecho desestimar la primera idea que tenia para plantear, por ser en efecto, demasiado especifica y, aunque relacionada con el 3D, creo que no muy habitual.
Bien.. Intentare empezar con algo simple para que puedan participar el mayor numero posible de usuarios.
La idea se podría plantear así:
    -como pasar formulas matemáticas, del 'papel' al código del programa.
Cuando queremos añadir una nueva funcionalidad a una aplicación que estemos haciendo, es normal tener que echar mano de algún 'technical paper', muy típicos de Pixar o Siggraph y encontrarnos formulas así..

 
Bien mirada no es gran cosa y hasta para alguien con matematicas de 7º de EGB, parece simple de pasar a C++ :  A = 1 + Fdr / 1 - Fdr;  donde A y Fdr son valores flotantes, (un numero con  decimales)  o  del tipo 'float', en C++.
Y ahora, resolvemos una un pelin más compleja...?


Donde 'Fdr' es el valor 'float' que usamos antes y el signo 'n' es otro float que suele el valor del 'index of refraction' abreviado como 'IOR' o 'eta'.
Alguien se anima?
Espero que lo encontréis más o menos interesante. Aunque quizás para algunos sea ‘pan comido’.
Saludos..

gorka:
Gracias povmaniaco, me acabo de dar cuenta lo ignorante que soy. xDDDDD

agedito:
Antes de nada, corregir un error en el enunciado. En cualquier lenguaje de programación los operadores tienen una prioridad, y en C++ (y en casi todos) la multiplicación es más prioritaria que la suma, así que para implementar la fórmula, tenemos que priorizar las sumas con paréntesis:
A = (1 + Fdr)/(1 - Fdr);

Porque si no:
A = 1 + Fdr/1 -Fdr sería A = 1 + (Fdr/1) -Fdr  = 1 + Fdr - Fdr = 1

La fórmula del problema es parecida, la dejo para los que están comenzando.

Otra anotación importante, no se puede dividir por cero )ni en matemáticas y en informática casi aún menos), por lo tanto hay que tener eso en cuenta (qizás en la adquisición del valor Fdr o n en la segunda fórmula.

povmaniaco:
Agedito: Más razon que un santo.. El primer enunciado ha sido 'mal copiado', porque de hecho, esta implementado tal como dices:

--- Código: ---/* Term of dipole boundary condition distance.
     represents the change in fluence due to internal reflection at the surface */
    float A = (1+Fdr)/(1-Fdr);

--- Fin del código ---
Saludos..

Cesar Saez:
Probablemente no tenga mucho sentido expresarlo en python pero...

--- Código: ---A = lambda Fdr: (1 + Fdr) / (1 - Fdr)
Fdr = lambda n: 1.440 / n ** 2 + 0.710 / n + 0.0636 * n + 0.668
--- Fin del código ---

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa