Я ищу подход к разделению четырехсторонней формы в сетку. Например:
В конечном итоге мне нужно преобразовать полученные формы в SVG, но я счастлив обработать преобразование в/из другой библиотеки или системы координат. То, что я ищу, - это подход к вычислению.
Предположим, что форма представляет собой четырехстороннюю форму, обрамляемую квадратично, где каждая сторона может быть вогнутой или выпуклой, но никакие края не накладываются на другие ребра или сами, а любая из четырех сторон может быть изогнута.
Тот же подход для четырехстороннего многоугольника (форма с прямыми ребрами тривиальна), а если две противоположные ребра являются прямыми линиями, легко найти пересекающиеся точки, потому что они будут лежать вдоль прямых, проведенных между подразделениями противоположных сторон, Оттуда относительно легко вычислить кривую, необходимую для присоединения к предыдущей точке вдоль альтернативной оси:
Однако, когда нет двух прямых, противоположных сторон (как в третьем примере выше), я не уверен, как найти точки, потому что больше нет уверенности в точках, лежащих по прямой.
Я долго искал документальный подход, но безуспешно.
Ниже приведен пример типа начальной формы с использованием SVG для его описания (он не должен обрабатываться в SVG, если я могу выводить на SVG.
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 406.4 233.4" xml:space="preserve">
<path class="st0" d="M394.3,232.7c-106-37.8-353.7,0-353.7,0s-90.4-151.2,0-207.3s353.7,0,353.7,0S420.3,154.7,394.3,232.7z"/>
</svg>
EDIT: Я задал аналогичный вопрос в Stack Exchange Maths, и один из ответов описывает один подход - использование патча Coons. Квора объясняет здесь.