Мне нужно преобразовать java.awt.geom.Area
или java.awt.Shape
в java.awt.Polygon
. Я знаю об этом: isSingular = true
, isPolygonal = true
. Поэтому я думаю, что полигон shuld сможет описать одну и ту же область.Конвертировать из java.awt.geom.Area в java.awt.Polygon
3
A
ответ
3
Я не уверен, что это стоит преобразовать, потому что Polygon - это старый класс Java 1.0, который может хранить только целые координаты, поэтому вы можете потерять некоторую точность. Во всяком случае, вы можете получить PathIterator от формы, и, как вы итерацию его, добавлять новые точки в многоугольнике:
public static void main(String[] args) {
Area a = new Area(new Rectangle(1, 1, 5, 5));
PathIterator iterator = a.getPathIterator(null);
float[] floats = new float[6];
Polygon polygon = new Polygon();
while (!iterator.isDone()) {
int type = iterator.currentSegment(floats);
int x = (int) floats[0];
int y = (int) floats[1];
if(type != PathIterator.SEG_CLOSE) {
polygon.addPoint(x, y);
System.out.println("adding x = " + x + ", y = " + y);
}
iterator.next();
}
}
Смежные вопросы
- 1. Преобразовать список java.awt.geom.Point2D в java.awt.geom.Area
- 2. Создать java.awt.geom.Area из точек
- 3. Сериализовать java.awt.geom.Area
- 4. Java.awt.polygon in android
- 5. java.awt.geom.Area объект дублирующих точек?
- 6. Как рассчитать площадь java.awt.geom.Area?
- 7. Неправильный результат области при использовании java.awt.geom.Area с Rectangle2D
- 8. Чтение/запись Arraylist <java.awt.geom.Area> через сокет
- 9. Конвертировать из пикселей в em
- 10. конвертировать '% /%' из R в matlab
- 11. конвертировать из полукокса в char16_t
- 12. Конвертировать из NSString в float?
- 13. Конвертировать из Bitmap в HttpPostedFile
- 14. конвертировать из .dylib в .so
- 15. конвертировать из CVS в Bzr
- 16. конвертировать в/из формата даты
- 17. Конвертировать из wiki в html
- 18. конвертировать из sqlite3 в postgresql
- 19. Конвертировать из wchar_t в int
- 20. конвертировать из json в массив
- 21. Конвертировать из байта * в байт []
- 22. конвертировать из int в double
- 23. конвертировать из char в LPCWSTR
- 24. конвертировать из байта в слово
- 25. конвертировать из ИНТ в байте
- 26. Конвертировать из BitArray в байт
- 27. Конвертировать из FileStream в OutputStream?
- 28. Конвертировать в preg из ereg
- 29. Конвертировать из Flux в Mono
- 30. конвертировать из httppostedfile в htmlinputfile
Ну иногда у вас нет выбора, даже если это не стоит;). Но спасибо, похоже, работает даже для isSingular = false, если вы перебираете путь. Несколько раз, хотя «дыры» внутри круга выходят как полигон, тогда тоже было бы неплохо узнать, какие полигоны являются отверстиями, а какие нет ... –
Если вы поместите итератор пути в FlatteningPathIterator, то он работает, даже если область не является многоугольным. Если вы предлагаете задать другой вопрос о дырах. – lbalazscs