In [30]:
# http://eastfarthing.com/blog/2015-04-21-noise/
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

In [66]:
s = lambda t: 3*t**2 - 2*t**3
f = lambda t: 1 - (3 - 2*np.abs(t))*t**2

x = np.linspace(-1, 1, 63)
y = np.linspace(-1, 1, 63)

images = [
    [[f(x) for x in x] for y in y],
    [[f(y) for x in x] for y in y],
    [[f(x) * f(y) for x in x] for y in y]
]

fig, axes = plt.subplots(1, 3, figsize=(6, 2))
for i in range(len(images)):
    axes[i].imshow(images[i], cmap=plt.cm.bone)
    for axis in [axes[i].xaxis, axes[i].yaxis]: 
        axis.set_ticks([])



In [68]:
G = np.array([[1, 1]])

x = np.linspace(-1, 1, 63)
y = np.linspace(-1, 1, 63)

images = [
    [[f(x) * f(y) for x in x] for y in y],
    [[G.dot(np.array([x, y]))[0] for x in x] for y in y],
    [[f(x) * f(y) * G.dot(np.array([x, y]))[0] for x in x] for y in y]
]

fig, axes = plt.subplots(1, 3, figsize=(6, 2))
for i in range(len(images)):
    axes[i].imshow(images[i], cmap=plt.cm.bone)
    for axis in [axes[i].xaxis, axes[i].yaxis]:
        axis.set_ticks([])