Hur får jag vektorn att "studsa"?
Hej,
Har fastnat lite på ett problem... Jag försöker få en pixel att åka åt ett håll och, när den träffar väggar, studsa. Det är en 30*20 matris som är färgkodad för att enklare se hur den studsar. Målet är att täcka hela ytan, men får börja med att få den att studsa.
Jag funderar på om jag behöver B1, B2... eller om jag ska sätta ett nytt värde på alla väggarna i sig, t.ex: 3, 4, 5 och 6, och när då figuren studsar mot väggen så byter den riktning.
Är inte säker på var under while-loopen jag behöver sätta in vad som skulle behövas. Kanske en if-loop?
Bifogar även en bild hur jag har tänkt. (Startpunkten ska kunnas sättas var som helst i slutet, men börjar enkelt)
x = 2;
y = 2;
grass = [0 0.7 0.2
0.4 0.6 0
0.4 0.2 0];
A = ones(30, 20);
A(:, 1) = 2; B1 = A(:,1);
A(:,20) = 2; B2 = A(:,20);
A(30,:) = 2; B3 = A(30,:);
A(1,:) = 2; B4 = A(1,:);
A(2, 2) = 0;
imagesc(A)
colormap(grass)
axis equal
hold on
while sum(A) ~= 0
while A(x,y) ~= 2
A(x,y) = 0;
y = y + 1;
x = x + 1;
imagesc(A)
axis equal
pause(0.01)
end
end
De här raderna
y = y + 1;
x = x + 1;
behöver modifieras. Om x (eller y) når sitt maxvärde så ska du istället räkna ner till dess att du når minvärdet.