私は固定数(p)の2D点で定義される(n)幾何学的形状のセットを持っています。これらの形状は独立していますが、効率の理由から、私は時間を単一の配列に格納しました。これらの図形のスケーリングや平行移動は簡単ですが、回転させたいのですが、その方法はわかりません。私はnp.tensordot
が私の友人だと思っていますが、正しく使用する方法が見つけられません。 P
と整列R
と入力配列からの残りの軸オフsum-reducing
一つずつ -一度に複数の2次元回旋
n = 100 # Number of shape
p = 4 # Points per shape
P = np.random.uniform(0, 1, (n, p, 2))
# Scaling
S = 0.5*np.ones(n)
P *= S
# Translating
T = np.random.uniform(0, 1, (n, 1, 2))
P += T
# Rotating
A = np.random.uniform(0, 2*np.pi, n)
cosA, sinA = np.cos(A), np.sin(A)
R = np.empty((n,2,2))
R[:,0,0] = cosA
R[:,1,0] = sinA
R[:,0,1] = -sinA
R[:,1,1] = cosA
np.tensordot(P, R, axes=???)
出力配列の形状だろうか? – Divakar
形状はPと同じでなければなりません(Pの各点が回転します) –