summaryrefslogtreecommitdiff
path: root/transform.py
blob: 4e5eb9cebc1dbf8fe6bc2c4a86c662689836bdbb (plain)
1
2
3
4
5
6
7
8
9
10
import numpy as np

def rotate(x, phi, n):
    x = np.asarray(x)
    n = np.asarray(n)

    r = np.cos(phi)*np.identity(3) + (1-np.cos(phi))*np.outer(n,n) + \
        np.sin(phi)*np.array([[0,n[2],-n[1]],[-n[2],0,n[0]],[n[1],-n[0],0]])

    return np.inner(x,r)