Учитывая набор игральных карт (прямоугольные изображения с шириной и высотой), как я могу повернуть и расположить каждую из них так, чтобы они выглядели как «веер», как если бы вы держали карточную руку в реальной жизни. Какая математика нужна для этого?
ОБНОВИТЬ
Вот финальная реализация браузера на JavaScript: https://cosmicrealms.com/blog/2013/03/16/hand-of-cards/ и http://jsfiddle.net/tyyvk/108/
mathematics
Sembiance
источник
источник
Ответы:
теория
Поскольку вы не указали, на какой платформе вы это реализуете, я дам описание алгоритма без учета языка:
То, что вращение центрировано вокруг одного из нижних углов карты (или около угла), должно быть видно из его просмотра:
Реализация
Что касается того, как реализовать это, это зависит от вашей платформы. В XNA вы можете просто использовать параметр Origin
SpriteBatch.Draw
для изменения центра вашего вращения.Вот что я получил с помощью следующего кода (с несколькими изменениями исходного положения, чтобы он выглядел лучше - в основном источник начинается около правого угла и заканчивается у левого угла):
И результат:
источник