2011-09-21 4 views
3

matlab 그림에서 직사각형을 그리고 조작하고 싶습니다. 조작함으로써, 마우스를 "직관적으로"마우스로 드래그, 회전, 크기 변경 (측면 길이 변경) 등의 작업을 수행 할 수 있습니다.matlab 그림에서 사각형을 대화식으로 조작하기

이 작업을 수행하는 메커니즘이 없습니다. (속성 편집기 또는 matlab 함수 또는 matlab 파일 교환?) 어쩌면 나는 잘 Google 수 없습니다.

내 자신을 쓰기 위해서, 직사각형 함수의 buttonDownFcn이 이것의 시작이라고 생각합니다. 즉, 사각형 자체에서 마우스 클릭을들을 때 사용할 수 있지만 사각형 내부의 마우스 클릭은 어떻게됩니까? 나는 그 (것)들을받는 방법을 알아낼 수 없다. "buttonUpFcn"은 그 중 하나를 보지 못합니다. 커서를 움직일 때 나는 사각형을 그리는 대신 숫자를 쿼리하기 시작하지 않는 한 캡처 할 방법이 없다는 것을 알게 되겠지만, 그것은 매우 번거롭고 복잡 할 것입니다.

감사합니다. 너의 고려를 위해.

존 그것을 할

+1

절대적으로 회전이 필요하지 않다면,'imrect'는 당신이 원하는 것을 할 것입니다. – Jonas

+0

@Jonas가이 질문에 답하고 받아 들일 것입니다. impoly는 내가 필요로하는 것에 충분히 가깝습니다. 그것이 나를 위해 효과가있을 것입니다. – John

답변

1

회전이 절대적으로 필요한 경우가 아니라면 IMRECT이 원하는대로 처리 할 수 ​​있습니다. 또한 직각 선을 그릴 수 있어야하는 경우 IMPOLY이 도움이 될 수 있지만 직각을 그리는 데 도움이되도록 POSITIONCONSTRAINFCN을 작성해야 할 수도 있습니다.

+0

도움을 주셔서 감사합니다. 즉각적인 문제를 해결하고 장기적인 문제에 대한 노력을 훨씬 덜줍니다! – John

0

한 가지 방법은-왼쪽 상단과 오른쪽 하단 사각형 모서리의 위치를 ​​저장하고 클릭이 내부 또는 사각형 외부에 있는지 여부를 확인하기 위해 사람들을 사용하는 것입니다. 해당 모서리는 [xmin ymin][xmax ymax] 직사각형 값을 제공하며 클릭의 위치를 ​​해당 값과 비교하여 클릭이 테두리의 안쪽인지 바깥인지를 결정할 수 있습니다.