2009-06-27 9 views
3

Où puis-je trouver un algorithme pour positionner intelligemment certains objets dans le canevas? J'utilise javascript (avec Raphael svg library), mais les exemples avec d'autres langues (ou pseudo-langage) sont les bienvenus. La géométrie est pas mon point fort =)Algorithmes pour positionner des objets dans un canevas

ont par exemple toile 600x800, et je veux placer n objets de taille 60x60 de manière intelligente, par exemple:
- un algorithme pour positionner des objets le long m concentrique cercles avec o décalage.
- un algorithme pour positionner des objets le long m carrés concentriques, mais une autre fréquence (le résultat peut être comme un jeu d'échecs)

et des exemples similaires .. Je ne fais que regarder quelques exemples de travail pour adapter à mon cas . Merci d'avance =)

+0

Autant que je sache, la performance des algorithmes devrait être autour de O (n) pour la question de l'échiquier. (quelque chose comme simple boucle). Je suis vraiment impatient de trouver une solution plus rapide (si possible) – xandy

+0

Dans mon cas, la performance n'est pas un argument critique. Je dois gérer seulement un nombre limité d'objets. – Emilio

+0

Coz Je ne comprends pas complètement vos questions sur, peut-être mieux que vous pouvez télécharger une image de ce que votre sortie attendue. – xandy

Répondre

1

Circle:

Entrées: CenterPt (probablement 300400), RadiusLargestCircle (probablement 270 pour vous assurer que vos objets sont à l'écran) RadiusDelta (60 assure qu'aucun objet qui se chevauchent en supposant des objets sont des cercles)

calculer le nombre de cercles (RadiusLargestCircle (-2 * RadiusDelta)/RadiusDelta)

pour chaque cercle

RadCir= RadiusLargestCircle - (CircleNum*RadiusDelta) 

(Je termine ce bien plus tard, la tête doit y maintenant)

mais essentiellement premier centerpt objet s'en va à x = radiusLargestCircle, y = 0

objet de division 2 * rayon en circumferance de cercle

pour les objets num

useing équation paramétrique de cercle, objet place à x radians à partir de l'un précédent

suivant Cercle

Questions connexes