2014-04-28 2 views
1

에 사각형의 이미지를 변형. 지금까지 나는 곡선 경로 또는 simmilar 따라 것들을 만들기에 관한 리소스를 발견했습니다. 내가 불규칙한 모양에 일정한 모양을 변형하는 방법에 그물 주위를 찾고 있었어요 불규칙한 모양

나는 전체 형상 변환을 할 찾고 있어요. 규칙적인 사각형을 불규칙한 모양으로 효율적으로 바꿉니다. 나의 이상적인 목표는 이것을 간단한 2D 천 시뮬레이션 애니메이션에 사용하는 것이다. Shapes

웹상에 내가 찾을 수없는 기존 자원이 있습니까? 또는 여러분 중 누구라도이 유형의 변형을 처리하는 알고리즘을 만드는 방법을 알 수 있습니다.

내 초기 추측 축으로 내 모양 순차적으로 축을 변형하는 것입니다,하지만 난이 왜곡이 많이 발생할 수 있습니다 우려하고있다. 어떤 아이디어?

+0

나는 내가 AfflineTransform 및 전단()를 사용하여 달성하기 위해 내가 원하는 것과 유사한 일을하는 방법을 발견 할 수 있습니다 생각합니다. 그러나 여전히 전체 효과를 얻지는 못합니다. http://docs.oracle.com/javase/7/docs/api/java/awt/geom/AffineTransform.html 당신은 아마 당신이 정말로 * *가 이미지에이를 적용할지 여부를 지적해야 –

+0

- 특히, 'BufferedImage'에 대해 이야기하고 있습니까? 이것이 천 시뮬레이션과 얼마나 관련이 있습니까? 이러한 시뮬레이션의 경우 일반적으로 3D 좌표가 필요합니다. 그렇지 않으면 거리 (모서리 길이)가 거의 이해가 안됩니다 (2D에서는 1D 오브젝트 인 로프 *를 현명하게 시뮬레이션 할 수 있습니다). 그와 관계없이 : AffineTransforms (3D에서도)의 문제점은 그들이 잘 ... * affine *이라는 것입니다. 그들은 임의적 인 변형을 제공하지 않습니다. 배경과 의도에 대한 더 많은 정보가 도움이 될 것입니다. – Marco13

+1

물론, 기본적으로, 이것입니다. http://puu.sh/8r7bz.PNG 모든 선은 곧은 것이 아니라 작은 선이 될 것입니다. 이것은 내 게임 캐릭터의 의상 옷에 사용됩니다. 그리고 네, 일련의 BufferedImages가 될 것입니다. 편집 : 이론적으로 아핀 변환은 자료가 늘어나지 않기 때문에이 애플리케이션에서 가장 현실적입니다. –

답변

0

예, 그림을 직사각형으로 분할 한 다음 각 사각형을 두 개의 삼각형으로 분할 한 다음 AffineTransform을 각 삼각형에 대해 다른 변환으로 설정 한 후 graphics.drawImage(..)을 사용하여 수행 할 수 있습니다.

나는이 애플릿에서 그것을 한 적이

: http://nik-sergeev.com/trees.html

(당신은 요즘 올 Java 애플릿에 대한 다양한 경고를 클릭하면), 당신은 당신이 애플릿 페이지 나 즐겨 찾기를 클릭 할 때 표시되는 내용 위에서 설명한대로 수행되는 "페이지 선회"효과입니다. (이 책을 같이하도록되어 애플릿입니다.)

이 방법으로 달성 할 수 아핀 로컬입니다 모든 매핑. (당신이 가장 신경 쓰는 것들 중 대부분입니다.)

각 삼각형에 AffineTransform을 정의하는 여섯 개의 매개 변수를 찾으려면 각 삼각형의 세 모서리를 광선 추적해야합니다. ("광선 추적"에 익숙하지 않다면, 소리보다 훨씬 쉽습니다. 포인트 맵핑 위치와 맵핑 위치를 지정해야합니다.) 그런 다음 몇 가지 기본 수학을 사용하여 아핀 변환 매개 변수를 해결하십시오.

관련 문제