diff --git a/__pycache__/algrebra.cpython-310.pyc b/__pycache__/algrebra.cpython-310.pyc new file mode 100644 index 0000000..bdfbb13 Binary files /dev/null and b/__pycache__/algrebra.cpython-310.pyc differ diff --git a/__pycache__/grad.cpython-310.pyc b/__pycache__/grad.cpython-310.pyc new file mode 100644 index 0000000..953c057 Binary files /dev/null and b/__pycache__/grad.cpython-310.pyc differ diff --git a/__pycache__/test.cpython-310.pyc b/__pycache__/test.cpython-310.pyc new file mode 100644 index 0000000..67d84ef Binary files /dev/null and b/__pycache__/test.cpython-310.pyc differ diff --git a/__pycache__/window.cpython-310.pyc b/__pycache__/window.cpython-310.pyc new file mode 100644 index 0000000..7e95055 Binary files /dev/null and b/__pycache__/window.cpython-310.pyc differ diff --git a/grad.py b/grad.py index 66acc64..ace8b55 100644 --- a/grad.py +++ b/grad.py @@ -22,11 +22,16 @@ def rgb_to_hex(color): def main(wind): + wind.points = [(0, 0)] + wind.points + [(wind.width, wind.height)] + + [print(wind.points)] + L = interpol(wind.points) dL = L.diff() N = len(wind.points) perp = [] + for p in wind.points: k = dL.value(p[0]) if k==0: @@ -36,18 +41,21 @@ def main(wind): b = p[1] - k*p[0] perp.append(Poly([b, k])) - colors = [(0, Vector(0, 0, 0))] + colors = [] for i in range(N): colors.append((wind.points[i][0], Vector(randint(0, 255), randint(0, 255), randint(0, 255)))) - colors.append((width, Vector(255, 255, 255))) + #colors.append((width, Vector(255, 255, 255))) + print(colors) + + #colors = [(0, Vector(0, 0, 0))] + colors + [] + color_func = interpol(colors).tuple() - step = 0.5 + step = 0.1 for dx in range(round(width/step)): x=dx*step color = color_filter(comp.value(x) for comp in color_func) - print(x, color) """ k = dL.value(x) if k == 0: @@ -58,8 +66,9 @@ def main(wind): for y in range(width*2): wind.canvas.create_line(y/2, k*y/2+b, y/2+1, k*(y/2+1)+b, fill=rgb_to_hex(color)) """ - wind.canvas.create_line(x, L.value(x), x+step, L.value(x+step), fill=rgb_to_hex((color)), width=5) + wind.canvas.create_line(x, L.value(x), x+step, L.value(x+step), fill=rgb_to_hex((color)), width=10) + wind.points = wind.points[1:-2] for i in range(N): wind.canvas.create_oval(colors[i][0] - 3, L.value(colors[i][0]) - 3, colors[i][0] + 3, L.value(colors[i][0]) + 3, fill=rgb_to_hex(colors[i][1].tuple())) @@ -69,8 +78,8 @@ def main(wind): if __name__ == "__main__": title = 'Huy' - width = 1000 - height = 500 + width = 1200 + height = round(width*1080/1920) wind = window(title, width, height) def on_enter_pressed(event): @@ -78,4 +87,4 @@ if __name__ == "__main__": wind.bind("", on_enter_pressed) - wind.mainloop() \ No newline at end of file + wind.mainloop() diff --git a/test.py b/test.py new file mode 100644 index 0000000..07a0618 --- /dev/null +++ b/test.py @@ -0,0 +1,12 @@ +def mult(p, q): + n = len(p) - 1 + m = len(q) - 1 + p += [0]*m + q += [0]*n + result = [0]*(n+m+1) + for k in range(n+m+1): + for l in range(k+1): + result[k] += p[l]*q[k-l] + return result[::-1] + +print(mult([1, 1, 1, 1], [1, 1, 1]))