How do I create an x by y grid and how do I color each grid section?

조회 수: 36 (최근 30일)
Ryan Burrows
Ryan Burrows 2018년 10월 26일
댓글: Walter Roberson 2018년 10월 27일
I am currently creating the game stratego on matlab. I am not sure how to physically create the game board though. I am looking for something quite simple, just a grid pattern where I can manually color each square whatever color I want. Please help
  댓글 수: 5
jonas
jonas 2018년 10월 27일
편집: jonas 2018년 10월 27일
Well you understood how this works much faster than most people do. The only thing I forgot to mention is that the colorscale scales automatically, meaning that the max/min in your matrix become the the top/bottom colors of your colorbar. You need to set the CLim so that the max/min stays at [0 4], even if those numbers are not present in your matrix.
A = repmat([repmat([1 0],1,10);repmat([0 1],1,10)],10,1)
set(gca,'clim',[0 4])
A(10,10)=3;
h = pcolor(A)
cmap = [0 0 0;1 1 1;1 0 0;0 0 1;0 1 0];
colormap(cmap)
set(gca,'clim',[0 4])
In addition, something you will probably find useful is that you can change the colors after plotting by this simple syntax
h.CData(2,4) = 3
assuming the handle to your pcolor is called h. This will be useful for you when you move your pieces over the board. You can write a callback function for that.
Walter Roberson
Walter Roberson 2018년 10월 27일
pcolor() is really surf() followed by view(2).
pcolor() interpolates face colors according to the surrounding four nodes.
If you want face colors directly you should be using imagesc()

댓글을 달려면 로그인하십시오.

채택된 답변

jonas
jonas 2018년 10월 26일
편집: jonas 2018년 10월 26일
You could use pcolor, here's a checkerboard example
A = repmat([repmat([1 0],1,10);repmat([0 1],1,10)],10,1)
pcolor(A)
You can build a color palette like this
cmap = [0 0 0;1 1 1;1 0 0;0 0 1;0 1 0];
colormap(cmap)
Now you can paint with these colors, by assigning values between, for example, 0 and 4 (you have 5 colors).
A(10,10)=4;
Makes the square at [10;10] green

추가 답변 (0개)

Community Treasure Hunt

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

Start Hunting!

Translated by