перемешать изображение с помощью Matlab - PullRequest
0 голосов
/ 28 марта 2011

Например, у меня размер экрана 1024х768. И каждое из моих изображений 150 х 250, где у меня всего 4 изображения. Как я могу рандомизировать эти изображения, чтобы они появлялись в разных местах на экране?

1 Ответ

0 голосов
/ 30 марта 2011

Что именно вы хотите?Это:

  • сохранить 4 предопределенных пустых места и назначить каждому из 4 изображений одно пустое место случайным образом,
  • или просто разместить их случайным образом на экране?

Идея состоит в том, чтобы отображать изображения и сохранять ручку каждого объекта фигуры (H1, H2, H3, H4).Идеально было бы хранить их в списке дескрипторов H. Для первой идеи, сохраняйте позицию левого верхнего угла каждого пустого места в POS-списке из 4 записей.Составьте список связности LC, где LC [i] = j возвращает индекс в POS, где найти позицию дескриптора H [i].Например, если LC = [1 2 3 4] дескриптор H1 назначен на позицию POS 1 , H2 на POS [2] и т. Д. ... Затем используйте randperm () ( mathworks.com/help/techdoc/ref/randperm.html), как указал Ашиш в списке ЛНР.Это будет случайным образом «смешивать» список связности и, следовательно, перемешивать позиции.Наконец, установите положение каждого маркера:

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

Где SizeX и SizeY - это соотношения размеров между объектом фигуры и экраном.

...