2012-05-20 1 views
0

모양의 둘레를 따라 화면상의 적절한 위치에 객체 (그리기 기능 포함)를 추가하여 Shape (AWT)에 동적 윤곽을 만들려합니다. 나는 각 물체 사이에 대략 평행선이 있어야한다. (동일한하는 또 다른 방법은 잘 될 것입니다 영향을줍니다.)자바 - 동적 모양 윤곽 그리기

어떻게 이러한 개체의 위치를 ​​취득 할 수 있는가? 셰이프에는 경로 반복자가 있음을 알고 있지만 사용 방법을 모릅니다.

+1

... 무엇이 문제입니까? – John3136

+0

이 오브젝트의 위치는 어떻게 얻을 수 있습니까? 셰이프에는 경로 반복자가 있음을 알고 있지만 사용 방법을 모릅니다. –

+0

삼각형 모양을 만들기 위해 3 개의 점이 추가 된 경우 경로 반복자에 3 점만 반환됩니다. –

답변

2

당신은 A Shape Diagram Editor에 설명 된 것과 같이 도서관에서 볼 수 있습니다. 당신이 실험을 할 경우

GraphPanel 가장자리로 연결 이동, 크기 조정, 색상 노드를 제공하는 간단한 객체 그리기 프로그램입니다. 노드가 조금 작은한다면, 그들은 Polygon에 대한 here를 같이 반복 될 수있는 Shape에 이동 포인트가 될 것입니다.

부록 : 나는 각 개체 사이의 대략 심지어 거리를 원한다.

class NodeList<Node> (예 : selected)에서 작동하는 많은 정적 메서드를 제공합니다. 예를 들어, 기존 구현은 여러 선택 항목을 하나의 단위로 번역하거나 크기를 조정하는 데 사용됩니다. AlignDistribute에 대한 함수도 비슷하게 구현할 수 있습니다. 나는 후자에 대한 예제로 LayoutManger을 보았습니다.

+1

@ AndrewThompson : 좋은 지적; 나는 그 질문의 양상을 간과했다. 이상. – trashgod

+0

이것이 어떻게 도움이되는지 모르겠습니다. 문제의 문제는 모양의 둘레를 따라 균등하게 분산 된 수의 점을 찾는 것입니다. 아마 나는 그것에 대해 분명하지 않았다. –

+0

그것은'Shape'에 의존합니다; 원의 파라 메트릭 방정식에 의존하는 [예제] (http://stackoverflow.com/a/2510048/230513)가 있습니다. 그것은 타원에 대한 파라 메트릭 방정식을 사용하여 일반화 될 수 있습니다. – trashgod

2

사용 FlatteningPathIteratorShape's 경로 포인트를 얻을 수 있습니다.

또한 욕망 폭 Shape's 개요를 얻을 수 BasicStroke's 방법

public Shape createStrokedShape(Shape s) 

를 사용할 수 있습니다.