Проверка того, насколько близко друг к другу могут быть две буквы (2D)

Я работаю над небольшим дизайнерским проектом, часть которого заключалась в написании текста заданным шрифтом таким образом, чтобы буквы слова просто касались друг друга справа и слева.

Я думал реализовать это следующим образом: создать GlyphVectors из двух букв, создать объекты Shape с помощью vector.getOutline(), затем создать объекты Area и пересечь их.

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

Есть ли способ сделать это, или мне нужно использовать другой подход?

ТИА

Эта: хорошо, я понял, что могу использовать AffineTransform. Теперь, есть ли способ определить размер (площадь поверхности) области, созданной пересечением двух букв?


person Erwin    schedule 20.06.2012    source источник


Ответы (1)


Насколько точно вы хотите, чтобы это было? Пиксельной точности добиться гораздо проще, чем векторной. Рассматривали ли вы линеаризацию (обычно выполняемую через

public PathIterator getPathIterator(AffineTransform at, double flatness)

) контуров, а потом делать поиск в противоположных направлениях среди всех точек? Это кажется наиболее очевидным решением, хотя оно и не является векторным.

person Andrew Butenko    schedule 29.06.2012