Distància Manhattan P56486


Statement
 

Graphic problem

pdf   zip

html

Sigui abs(z) el valor absolut de z. Per exemple, abs(7) = abs(−7) = 7.

Donats dos punts en el pla (x1, y1) i (x2, y2), la seva distància Manhattan es defineix com abs(x1x2) + abs(y1y2).

Feu un programa que lleigeixi vuit naturals n, m, xr, yr, xg, yg, xb i yb, i que dibuixi una imatge amb n × m punts. El component red del color de cada punt (x, y) ha de ser el residu de la divisió entre 256 de la distància Manhattan entre (x, y) i (xr, yr), i similarment amb els components green i blue respecte de (xg, yg) i (xb, yb), respectivament.

Entrada

L’entrada consisteix en els vuit naturals mencionats anteriorment. Podeu suposar que les tres x estan entre 0 i n − 1, i que les tres y estan entre 0 i m − 1. Però pot ser que algun component del color no s’hagi d’usar (és a dir, que hagi de ser 0 a tot arreu). Això s’indica amb un parell de -1 per a aquell component.

Sortida

Cal generar una imatge (n, m) segons s’ha explicat.

Observació

En Python 3, la funció valor absolut es diu abs(), i el residu es calcula amb l’operador %.

Public test cases
  • Input

    511
    511
    -1
    -1
    256
    256
    -1
    -1
    

    Output

    sample-1.png

     (511×511)

  • Input

    800
    300
    0
    0
    -1
    -1
    0
    100
    

    Output

    sample-2.png

     (800×300)

  • Input

    500
    400
    25
    40
    75
    125
    80
    15
    

    Output

    sample-3.png

     (500×400)

  • Information
    Author
    Salvador Roura
    Language
    Catalan
    Official solutions
    Python
    User solutions
    Python