get points on line; get line segments; color key hue shift
This commit is contained in:
parent
2ff27c9600
commit
45c3e84dc4
|
@ -14,6 +14,24 @@ def get_step(start, end, speed):
|
|||
def get_step_relative(start, end, step):
|
||||
return get_step(start, end, get_distance(start, end) * step)
|
||||
|
||||
def get_segments(start, end, count):
|
||||
rel_step = get_step_relative(start, end, 1 / float(count))
|
||||
segs = [[start]]
|
||||
for ii in range(count):
|
||||
seg_end = segs[-1][0][0] + rel_step[0], segs[-1][0][1] + rel_step[1]
|
||||
segs[-1].append(seg_end)
|
||||
if ii < count - 1:
|
||||
segs.append([seg_end])
|
||||
return segs
|
||||
|
||||
def get_points_on_line(start, end, count):
|
||||
rel_step = get_step_relative(start, end, 1 / float(count - 1))
|
||||
points = [start]
|
||||
for ii in range(count - 2):
|
||||
points.append((points[-1][0] + rel_step[0], points[-1][1] + rel_step[1]))
|
||||
points.append(end)
|
||||
return points
|
||||
|
||||
def get_angle(start, end, transpose=False):
|
||||
angle = atan2(end[1] - start[1], end[0] - start[0])
|
||||
if transpose:
|
||||
|
@ -170,8 +188,9 @@ def get_hue_shifted_surface(base, offset):
|
|||
color = Color(0, 0, 0)
|
||||
for x in range(surface.get_width()):
|
||||
for y in range(surface.get_height()):
|
||||
h, s, l, a = Color(*surface.unmap_rgb(pixels[x][y])).hsla
|
||||
if a:
|
||||
rgb = surface.unmap_rgb(pixels[x][y])
|
||||
h, s, l, a = Color(*rgb).hsla
|
||||
if a and surface.get_colorkey() != rgb:
|
||||
color.hsla = (int(h) + offset) % 360, int(s), int(l), int(a)
|
||||
pixels[x][y] = color
|
||||
del pixels
|
||||
|
|
Loading…
Reference in New Issue