По ходу кривой кубического безье я имею в виду визуализацию кривой "А" с определенной шириной линии "w".
Как я могу получить другие кубические кривые безье, которые описывают контур удара безье 'A'?
Ответ 1
Оооо. Вы хотите получить кривые смещения кривой Безье.
Плохая новость. это сложно, потому что эти кривые не могут быть просто выведены численными. Они содержат все виды пересечений, петли и другие неприятные вещи.
Он делает сплющивание, поэтому его статья в основном касается разложения кривых смещения на сегменты линий и сегменты дуги окружности, но вы можете слить их обратно в безье.
Для лучшего понимания вы можете также прочитать его другие статьи, связанные с безьером.
Ответ 2
Qt QPainterPathStroker (это открытый и довольно читаемый код) использует алгоритм, описанный в вышеупомянутой статье, чтобы делать то, что вы хотите.
Ответ 3
Сделать точно, так как другие объяснили очень сложно. Кривая смещения не является кубическим Безье и очень трудноразрешима. Тогда вогнутости, которые глубже смещения, вызывают проблемы пересечения.
Хорошей новостью является то, что обычно вы хотите рассчитать смещение хода для рендеринга, поэтому нужна только точность пикселей. Кроме того, различные пересечения по-прежнему создают заполненный многоугольник, если вы соблюдаете правило обмотки для заполнения многоугольников. Таким образом, вы сначала сглаживаете кривую, а затем смещаете линейно, и это становится проблемой полигона в прямой линии.