2011-03-28 5 views
0

Par exemple, j'ai une taille d'écran de 1024x768. Et, chacune de mes images est de 150 x 250, où j'ai 4 images au total. Comment puis-je randomiser ces images pour apparaître à différentes positions sur l'écran?shuffle image using matlab

+0

http://www.mathworks.com/help/techdoc/ref/randperm.html pourrait être utile. –

Répondre

0

Que voulez-vous exactement? Est-il à:

  • garder 4 places vides prédéfinies et attribuer chacun des 4 images à un endroit vide au hasard,
  • ou simplement les placer au hasard sur l'écran?

L'idée est d'afficher les images et de garder la poignée de chaque objet figure (H1, H2, H3, H4). L'idéal serait de les stocker dans une liste de poignées H. Pour la première idée, stockez la position du coin supérieur gauche de chaque place vide dans une liste de 4 entrées POS. Faire une liste de connectivité LC où LC [i] = j renvoie l'index dans POS où trouver la position du handle H [i]. Par exemple, si LC = [1 2 3 4] gérer H1 est affecté à position POS 1, H2 à POS [2], etc ... Ensuite, utilisez randperm() (mathworks.com/help/techdoc/ref/randperm.html) comme Ashish a souligné sur la liste LC . Cela va "mixer" aléatoirement la liste de connectivité, et donc mélanger les positions. Enfin, régler la position de chaque poignée:

set(H[i], 'Position', [POS(LC[i],1) POS(LC[i],2) SizeX SizeY]); 

Lorsque SizeX et SizeY sont les rapports de taille entre l'objet de la figure et l'écran.