need help with pointer movement on grid

I have a grid,say 150*150m with each cell 0.5*0.5m making it a grid of 300*300 cells. I want to move pointer in a random arc path such that the pointer covers each cell (cell should be covered completely) in time steps( if that can be included as well) along its path. The pointer dimensions 1*1m (i.e. spanning 2*2cells in either direction). i need help with coding it.

1 comentario

Walter Roberson
Walter Roberson el 1 de Dic. de 2016
When moving from one location to another, what are the allowed changes in position? For example is it only permitted to move left, right, up, down, by one unit? Or is it permitted to move diagonally by one? Is it permitted to move more than one cell at a time? Is it permitted to move back to where it was immediately previously? Is it permitted to move back to somewhere it has been before? Is each location to be visited exactly once, so the 300*300 grid would be completely covered in exactly 90000 steps?

Iniciar sesión para comentar.

 Respuesta aceptada

KSSV
KSSV el 1 de Dic. de 2016
clc; clear all ;
% N = 300 ; M = 150 ;
N = 100 ; M = 50 ;
[X1,Y1] = MeshRectanglularPlate(150,150,N,N) ;
[X2,Y2] = MeshRectanglularPlate(150,150,M,M) ;
nel = size(X2,2) ;
Ele = 1:nel ;
for i = 1:nel
% pick one element randomly
ele = randsample(Ele,1) ;
patch(X1,Y1,'w') ;
hold on
patch(X2(:,ele),Y2(:,ele),'r')
hold off
% remove the elemnet picked
Ele = setdiff(Ele,ele) ;
pause(0.5)
end

17 comentarios

h b
h b el 1 de Dic. de 2016
showing 'Error using patch. vectors must be the same length'
KSSV
KSSV el 1 de Dic. de 2016
which line? It worked fine for me.....did you use the function?
h b
h b el 1 de Dic. de 2016
Editada: Walter Roberson el 1 de Dic. de 2016
two diff grids are displayed but no pointer is being shown
KSSV
KSSV el 1 de Dic. de 2016
Editada: KSSV el 1 de Dic. de 2016
Are you taking a fine grid? Try to use a coarse one....like I have used 100 and 50. I get something like the image shown for one step.
h b
h b el 1 de Dic. de 2016
error being showed in line- patch(X1,Y1,'w');
KSSV
KSSV el 1 de Dic. de 2016
what error? what version you are using?
h b
h b el 1 de Dic. de 2016
MATLAB Version: 9.1.0.441655 (R2016b)
KSSV
KSSV el 1 de Dic. de 2016
YOu have not specified what error it is..you may also try fill instead patch
h b
h b el 1 de Dic. de 2016
same is being displayed with fill. 'Error using fill Vectors must be the same length' i will check again..
KSSV
KSSV el 1 de Dic. de 2016
What is size of X1 and Y1? Earlier you said two grids are shown and no pointer.
h b
h b el 1 de Dic. de 2016
Editada: Walter Roberson el 1 de Dic. de 2016
Following sizes
X1 = 10201x2 double ; Y1 = 10000x4 double X2 = 2601x2 double ; Y2 = 2500x4 double
input as per your code.
output
i am getting two figures with grid shown without any pointer as well as the error message in the line patch(X1,Y1,'w') ;
KSSV
KSSV el 1 de Dic. de 2016
There is a error....sizes of X1 and Y1 should be same...same is case with X2 and Y2. Hey, I apoologize, I made changes to the function....you use this function. ;).
h b
h b el 1 de Dic. de 2016
it worked. Thank you so much sir.
h b
h b el 1 de Dic. de 2016
Here, is it possible for the pointer to move in a path(straight/arc) cell-by-cell?
KSSV
KSSV el 1 de Dic. de 2016
In the present code, pointer moves randomly..if you want in a path, you have to specify the path first and then follow the path.
h b
h b el 6 de Dic. de 2016
1. i am unable to move pointer(having dimension 2cells*1cell) cell by cell in a straight path.
2. is it posible to keep certain column of cells in the grid as rotated matching the path shape. eg. in an arc path, square cells rotated to match the shape. Thanks in advance
h b
h b el 13 de En. de 2017
i have an issue to formulate logic. how to move pointer in any straight line(column or row) cell by cell. please help

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating, Deleting, and Querying Graphics Objects en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

h b
el 1 de Dic. de 2016

Comentada:

h b
el 13 de En. de 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by