Desafío
Un mundo de píxeles es una imagen PNG donde las fuerzas gravitacionales, electromagnéticas y nucleares ya no existen. Las fuerzas especiales conocidas como "fuerzas de píxeles" son todo lo que queda. Definimos esta fuerza como
F p-> q = a * (p * q) / (r * r) * r̂
F
es la fuerza de píxeles quep
ejerce sobreq
a
es la constante de Adams, definida comoa = 4.2 * 10 ^ 1
p
yq
son cargos en dos píxelesr
es la distancia desdep
hastaq
r̂
es la dirección de r en radianes, medida en sentido antihorario * desde el eje x positivo
* Hay infinitos valores aceptables para cualquier dirección dada. Por ejemplo, 6.28, 0, -6.28 y -12.57 radianes son todos equivalentes, y todos serían aceptados.
Existen tres tipos de píxeles:
- Un píxel rojo tiene una carga positiva.
- Un píxel negro tiene una carga negativa.
- Un píxel blanco tiene una carga de cero
El píxel inferior izquierdo del mundo de píxeles se encuentra en (0, 0)
. El eje y positivo cae en la página, y el eje x positivo cae a la derecha. La fuerza total sobre un píxel es simplemente la suma vectorial de todas las fuerzas ejercidas sobre ese píxel. Los cargos similares se repelen y los cargos opuestos se atraen.
Dada una ruta de archivo a Pixel World, así como dos enteros x
y y
, genera la fuerza total ejercida sobre el píxel en la ubicación (x, y)
en el formato <magnitude>\n<direction>
. La salida debe tener una precisión de al menos 2 decimales, pero puede generar más si lo desea. La dirección debe salir en radianes. Los enteros x
y y
están garantizados para estar dentro de los límites del mundo.
Entregables
Debe incluir un programa y un comando que pueda usarse para ejecutar su programa. Dos ejemplos:
python AbsolutelyPositive.py "C: \ Pixtona.png" 50 40
java UltimateAttraction "C: \ Jupix.png" 30 30
Imagen de ejemplo
En la imagen a continuación , hay un píxel negro en (100, 104)
.
Pixars.png
Salida de ejemplo
Esta salida no corresponde a la entrada anterior.
534.19721014
4.32605416
¿Necesita ayuda para comenzar?
Escribí un código de ejemplo aquí . No lo he probado, así que úselo bajo su propio riesgo.
Respuestas:
Python - 355
Sin golf
Algún pequeño programa utilizado para crear pruebas:
Pruebas de muestra:
Solo publique primero ... Si hay algún error o problema, deje un comentario a continuación, pero probablemente me tomará bastante tiempo responder porque estoy realmente ocupado con otras cosas.
fuente