mirror of
https://github.com/brmlab/ledbar.git
synced 2025-06-09 13:24:01 +02:00
rainbow2d: nicer distance function !!
This commit is contained in:
parent
a6e28d711b
commit
04d3f079db
1 changed files with 16 additions and 6 deletions
|
@ -35,13 +35,23 @@ corr_b_v = [0.0, 0.13, 0.18, 1.0]
|
|||
def set_pixel_2d(bar, x, y, r, g, b):
|
||||
bar.set_pixel(WIDTH - x - 1 + y*WIDTH, r, g, b)
|
||||
|
||||
def combine(*fncs):
|
||||
return lambda *args: reduce(
|
||||
id,
|
||||
reduce(
|
||||
lambda acc,fnc:(fnc(*acc),),
|
||||
reversed(fncs),
|
||||
args)
|
||||
)
|
||||
|
||||
def flip(f):
|
||||
return lambda *a: f(*reversed(a))
|
||||
|
||||
def cdist(center, point, scale):
|
||||
dist = math.sqrt(reduce(
|
||||
lambda a,b: a+b,
|
||||
map(lambda (x,y): (x-y)**2, zip(center,point))
|
||||
))
|
||||
dist = dist*scale
|
||||
return dist
|
||||
from operator import add,sub
|
||||
from math import sqrt
|
||||
from functools import partial
|
||||
return scale*sqrt(reduce(add, map(combine(partial(flip(pow),2),sub),center,point)))
|
||||
|
||||
l = Ledbar(PIXELS)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue