Étant donné un ensemble de cartes à jouer (images rectangulaires avec une largeur et une hauteur), comment puis-je faire pivoter et positionner chacune d'elles de manière à ce qu'elles apparaissent dans un motif en `` éventail '', tout comme vous tiendriez une main de cartes dans la vraie vie. Quelles mathématiques faut-il pour cela?
MISE À JOUR
Voici la finale, dans l'implémentation du navigateur en JavaScript: https://cosmicrealms.com/blog/2013/03/16/hand-of-cards/ et http://jsfiddle.net/tyyvk/108/
mathematics
Sembiance
la source
la source
Réponses:
Théorie
Puisque vous n'avez pas spécifié dans quelle plateforme vous implémentez cela, je vais donner une description de l'algorithme d'une manière indépendante du langage:
Que la rotation soit centrée autour de l'un des coins inférieurs de la carte (ou près du coin) devrait être évident en la regardant:
la mise en oeuvre
Quant à la façon de mettre en œuvre cela, cela dépend de votre plate-forme. Sur XNA, vous pouvez simplement utiliser le paramètre Origin de
SpriteBatch.Draw
pour changer le centre de votre rotation.Voici ce que j'ai obtenu avec le code suivant (avec quelques ajustements à l'origine pour le rendre meilleur - fondamentalement, l'origine commence près du coin droit et se termine près du coin gauche):
Et le résultat:
la source