2013-05-27 4 views
1

그래서 나는 정상적인 이미지를 가지고 있습니다. 직사각형 이미지의 각 모서리에 클릭 앤 드래그 리스너를 정의했습니다. 각 모서리를 자유롭게 변형하고 화면에 페인트하고 싶습니다.임의의 모서리에 이미지 그리기

AffineTransform 클래스는 변형 가능성을 제공하지만이를 실현할 방법을 찾지 못했습니다.

Matrix.setPolytoPoly 메소드를 사용하여 Android와 동일한 기능을 구현했습니다. 그러나 자바 스윙에는 이에 상응하는 것이 없습니다.

감사합니다.

편집 : 나는 다음과 같은 이미지로이 과정을 설명하기 위해 싶습니다 : 내가 왼쪽에 하나 개의 코너를 드래그 할 때이 현상이 발생

enter image description here

. 지금 제가 가진 문제는, 순수한 3x3 행렬로 쉽게 이런 행동을 모델링 할 수 있다고는 생각하지 않습니다. 나는 행동을보기 위해 안드로이드 네이티브 코드를 보았지만 실제로 네이티브 코드에서는 꽤 깊다.

+0

_affine_ 또는 _projective_ geometry를 원하십니까? – trashgod

+0

나는 투영 기하학이 2D 오브젝트에 3d 오브젝트를 표시하는 데에만 적용된다는 것을 알고 있습니다. 그렇다면 현재 이미지가 2 차원이고 2 차원으로 유지되어야하지만 (즉, 사각형으로 변형 됨) 원하는 이미지가 아닙니다. – Geki

+0

임의의 사변형은 투영 기하학을 필요로합니다. – trashgod

답변

3

어떻게해야할까요?

평행선이 평행을 유지하지 않으므로 변경 사항이 affine이 아님을 알 수 있습니다. Java Advanced Imaging (JAI)은 추상 클래스 Warp을 통해 필요한 투영 기능을 제공합니다.