Sailing in high-dimensional spaces: Low-dimensional embeddings through angle preservation