Самый простой метод, о котором я могу думать, состоит в том, чтобы сохранить последовательность изображений в матрице и посещать матрицу каждый раз, когда вы хотите показывать новые изображения. Предпочтительно матрица расположена так, что каждая строка является показателем двух изображений, которые должны быть показаны одновременно. Вы можете сохранить число строк, отображаемых в настоящее время в handles
или appdata
, и продвигать этот nunber каждый раз, когда нажимается следующая кнопка.
Ниже приведена демонстрация идеи. Вам нужно будет установить habdles.curSeqNum = 1;
в OpeningFcn
.
function next_block_Callback(hObject, eventdata, handles)
% Image sequence
mySeq = [1 2; 2 3; 4 5; 5 6; 7 8; 8 9];
nxtSeqNum = handles.curSeqNum + 1;
if nxtSeqNum > size(mySeq, 1), nxtSeqNum = 1; end
imshow(handles.images_fig{mySeq(nxtSeqNum, 1)},'parent',handles.axes1);
imshow(handles.images_fig{mySeq(nxtSeqNum, 2)},'parent',handles.axes2);
handles.curSeqNum = nxtSeqNum;
guidata(hObject,handles)
end
Поскольку обнаружение столкновений происходит на кадр, и ваш объект уже частично проходил через твердое тело, когда обнаруживалось столкновение.
Вы можете попробовать увеличить continuousCollisionDetectionThreshold
, чтобы увеличить разрешение вычислений за счет производительности.