Как пройтись по фигуре Java и перевести ее в левые / правые / прямые команды? - PullRequest
0 голосов
/ 07 марта 2011

У меня есть объекты Java Shape. Если я буду следовать линии, например, пиксель за пикселем, это будет означать последовательность прямых, прямых, ... команд. Если я буду следовать по кругу, я буду что-то вроде левого, прямого, левого, прямого ... Как я могу решить это с помощью Java?

Ответы [ 2 ]

2 голосов
/ 07 марта 2011

Я бы получил pathIterator из фигуры,

public PathIterator getPathIterator(AffineTransform at)

и из итератора, вызовите

int currentSegment(double[] coords) 

, затем, учитывая начальный и конечный pt, вы можете вычислить наклонлиния.

На любом отрезке пути, если у вас есть наклон предыдущего сегмента линии и наклон текущего отрезка линии, вы можете сказать, в каком относительном направлении идти, используя Точечное произведение для определения угла.

0 голосов
/ 07 марта 2011

Я бы, вероятно, выбрал начальный пиксель, сохранил бы его в массиве, а затем искал бы окружающие пиксели, не входящие в этот массив, сохранил направление, в котором он оказался, и так далее.

...