Расчет контрольных точек для сокращенного / гладкого пути SVG Кривая Безье

Необходимо использовать ZipOutputStream для этого.

http://java.sun.com/javase/6/docs/api/java/util/zip/ZipOutputStream.html

14
задан Adam S 13 March 2011 в 05:03
поделиться

1 ответ

Я нашел это . Самый короткий ответ, который я могу процитировать из него:

Мы присоединяемся к точкам привязки, окружающим запуск, и точки привязки конца со строкой (let’s называют их opposed-lines):

opposed-lines

, Чтобы линия была ровной, положение каждой контрольной точки должно быть относительно opposed-line:

  • контрольная точка находится на строке, параллельной эти opposed-line, и касательная к текущей точке привязки.
  • На этой строке касательной, расстояние от точки привязки до контрольной точки зависит от длины opposed-line и произвольное smoothing отношение.
  • контрольная точка запуска входит в то же направление как эти opposed-line, в то время как контрольная точка конца идет назад.
// When 'current' is the first or last point of the array
// 'previous' or 'next' don't exist.
// Replace with 'current'
const p = previous || current
const n = next || current
<час>

Моя интерпретация:

  • Вычисляют эти 2 контрольных точки для каждой пары "привязки" (фактическая кривая) точки.
  • , Если точки 1 (start / end - 1) и 2 (start + 1 / end) вычисляются:
    • первая контрольная точка работает от точки 1 (start) параллельный {строка, идущая от точки 0 (start - 1) для указания 2 (start + 1)}.
    • вторая контрольная точка движется в обратном направлении от точки 2 (end) параллельный {строка, идущая от точки 1 (end - 1) для указания 3 (end + 1)}.
  • расстояние от точки 1 или 2 к соответствующей контрольной точке является отношением желаемой переменной гладкости (0.0 - 1.0) из кривой к длине параллельных строк. (Можно использовать основной аккуратный, т.е. потому что () и sin() для углов.)
  • В случае конечных точек (которые не имеют никакого смысла перед/после того, как ими), замените start - 1 [1 118] или end + 1 с [1 120].
0
ответ дан 1 December 2019 в 13:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: