PC_rotated = m.dot(PC) # Define radius vector vecR = geo.twoPts2Vec(PO, PC_rotated) * R vecR_size = geo.normVec(vecR) # Define viewing vectors vec = geo.twoPts2Vec(PC_rotated, Ppx_rotated) # Call function vecView = geo.projectVecs2Depth(T, vecR, vec) vecView_size = geo.normVec(vecView) # Update viewing vectors vec = vecView - vecR.reshape((1, 1, 3)) vec_size = geo.normVec(vec) # Plot p.plotVec(vecR, PO, 'r', vecR_size) p.plotPoint(PC_rotated, '.g') for i in range(h): for j in range(w): p.plotVec(vecView[i, j, :].reshape((3, 1)), PO, 'm', vecView_size[i, j]) p.plotVec(vec[i, j, :].reshape((3, 1)), PC_rotated, 'g', vec_size[i, j]) p.plotAxis() p.show(90, 180)