안녕하세요, stackoverflow 커뮤니티,데이터 커서 모드에서 여러 개의 손으로 선택한 점 가져 오기
저는 현재 논문의 자동차 공유 시뮬레이터를 프로그래밍하고 있습니다. 그러나, 자동차 공유 네트워크는 도시 맵으로부터 유도 될 수있는 좌표를 갖는 다양한 자동차 공유 스테이션으로 구성된다. 방송국 수를 변경하는 것은 필자의 시뮬레이터의 필연적 인 기능이므로 부가 방송국은 필수이므로 데이터 커서 모드에서 위치 데이터를 검색하는 방법을 모색했습니다. 다행히, 그의 노력 내가 사용하는 내 앞에서 약간의 열심히 일하는 프로그래머가 있었다 :
statDiff = length(statCoords)- length(defaultstatCoords);
hf5 = figure(5);
set(0,'CurrentFigure',hf5)
[B, map] = imread('Hannoverosm.png');
C = imresize(B, 0.975);
imshow(C, map)
dcmObject = datacursormode;
pause
datacursormode off
cursor = getCursorInfo(dcmObject);
newStat = [cursor.Position(1), cursor.Position(2)].';
defaultstatCoords(:,end + 1) = newStat;
statCoords = defaultstatCoords;
(cursor.Position (1) X이고 cursor.Position (2) y 위치 반면)
저는 현재 솔루션 에서처럼 하나의 스테이션을 추가 할뿐만 아니라 (현재 하나의 스테이션을 추가 한 후 데이터 커서 모드가 닫히는) 루프를 작성하는 것뿐만 아니라 많은 포인트를 검색 할 수 있습니다 (새 스테이션이라고도 함). 좌표)를 기본 스테이션 수와 원하는 nr 사이의 차이로 설정합니다. 방송국. 상상해보십시오 : 나는 5 개의 기본 스테이션을 가지고 있으며 총 10 개의 스테이션을 원합니다. 둘 사이의 차이는 5가 될 것이므로 5 개의 새 스테이션의 좌표가 될 5 포인트를 선택하거나 클릭해야합니다.
p.s : 더 나은 이해를 위해 현재 상태를 보여주는 그림을 참조하십시오. 사전에
감사합니다 :)
Enter 키나 ESCAPE와 같은 센티넬 키를 누르기 전까지는'ginput'을 사용하고'while' 루프를 사용합니다. 또는, 당신이 할 수있는 것은 당신이 가지고있는 포인트만큼 루프를 반복하는 것입니다. 나는 너에게 대답을 쓸거야. – rayryeng
정말 고맙습니다. 고마워요! – Atlan
당신을 진심으로 환영합니다. 나는 방금 대답을 썼다. 행운을 빕니다! – rayryeng