Каким образом создать полигон с заданной площадью, при этом некоторые из его граней должны быть зафиксированы?
Например имеется такая голубая граница, в нее надо вписать полигон на ровно 50,53 кв.м.
Создать полигон с заданной площадью
-
- Активный участник
- Сообщения: 139
- Зарегистрирован: 17 окт 2016, 16:37
- Репутация: 14
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Создать полигон с заданной площадью
0) рисуете полигон по точкам границы, если его площадь менее требуемой, то задача не решается.
План А:
1) делаете на детальной сетке дистанционное преобразование от границы (считаете расстояние), и направление градиента (не D8, а реального) в точках границы.
2) Двигаете точки по градиенту, считаете расстояние. По трем расстояниям сдвига, решив квадратное уравнение, вычисляете на сколько нужно сдвинуть все точки.
План В:
1) делаете на детальной сетке дистанционное преобразование от границы (считаете расстояние).
2) Проводите изолинии по расстоянию, получаете полигоны и считаете площади. По трем значениям расстояний решаете квадратное уравнение, и получаете расстояние, на котором нужно провести изолинию.
3) Повторяете (2), пока не получите требуемую точность. Если не сойдется (начнет колебаться), используете (2) из плана А.
P.S. Можно ограничиться двумя точками, получится метод Ньютона-Рафсона (метод касательных), по 3 точкам сходится быстрее, но считать сложнее.
-
- Гуру
- Сообщения: 977
- Зарегистрирован: 27 янв 2009, 22:57
- Репутация: 258
Re: Создать полигон с заданной площадью
Где два программиста, там три мнения. Что это значит?
Мнение первое, второе и правильное...
"метод подгонки"
Мнение первое, второе и правильное...
"метод подгонки"
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 14 гостей