제가 현재 보여지고있는 view 가.. 전체 view에서 어느 위치인지에 대한 정보가 필요합니다. 그러니깐.. zoom 을 하던가 했을 경우 전에 view의 크기에서 현재 보여지는 부분의 위치 정보가 필요한데 어떻게 하면 가져올수가 있나요?
답변 부탁드립니다... 수고하세요..
댓글 2
LechuckRoh2003-06-04
답변이 늦어서 죄송합니다..
현재 화면에 보여지고 있는view는 IlvManagerView에서 관리를 하며, IlvManager의 좌표를 화면에 보여지는 좌표로의 IlvTransformer 에서 2차원 변환행렬식에 의해서 이루어지는데, 화면에 보이는 좌표를 역으로 IlvManager상의 좌표로 바꾸려면 역변환행렬식을 사용하면 됩니다.
일단 현재 보이는 view의 영역은 좌상단은 항상 (0,0)이 되고 우하단의 좌표는 IlvManagerView.getSize()를 하면 알수 있습니다.
IlvDim dim = mgrview.getSize(); IlvRect rect = new IlvRect(0f, 0f, (float)dim.getWidth(), (float)dim.getHeight());
다음엔 이 영역을 역변환 시키면 원래 좌표를 구할 수 있습니다.
IlvTransformer t = mgrview.getTransformer(); if (t != null) t.inverse(rect);
이제 rect의 값을 보시면 원하는 값이 들어가 있습니다.
LechuckRoh2003-06-04
답변이 늦어서 죄송합니다..
현재 화면에 보여지고 있는view는 IlvManagerView에서 관리를 하며, IlvManager의 좌표를 화면에 보여지는 좌표로의 IlvTransformer 에서 2차원 변환행렬식에 의해서 이루어지는데, 화면에 보이는 좌표를 역으로 IlvManager상의 좌표로 바꾸려면 역변환행렬식을 사용하면 됩니다.
일단 현재 보이는 view의 영역은 좌상단은 항상 (0,0)이 되고 우하단의 좌표는 IlvManagerView.getSize()를 하면 알수 있습니다.
IlvDim dim = mgrview.getSize(); IlvRect rect = new IlvRect(0f, 0f, (float)dim.getWidth(), (float)dim.getHeight());
다음엔 이 영역을 역변환 시키면 원래 좌표를 구할 수 있습니다.
IlvTransformer t = mgrview.getTransformer(); if (t != null) t.inverse(rect);