ENGLISH
Bezier Curve Extension
这是一个提供如下几个方法的三次贝塞尔曲线插件。
npm安装
$ npm install @jiaminghi/bezier-curve
使用
import bezierCurve from '@jiaminghi/bezier-curve'
快速体验
<script src="http://lib.jiaminghi.com/bezierCurve/bezierCurve.map.js"></script>
<script src="http://lib.jiaminghi.com/bezierCurve/bezierCurve.min.js"></script>
<script>
const { bezierCurveToPolyline, getBezierCurveLength, polylineToBezierCurve } = window.bezierCurve
</script>
示例
bezierCurve
const bezierCurve = [
[20, 20],
[
[100, 20],[100, 80],[180,80]
],
]
bezierCurve in SVG
bezierCurveToPolyline
function bezierCurveToPolyline (bezierCurve, precision = 5) {
}
const precision = 5
const polyline = bezierCurveToPolyline(bezierCurve, precision)
polyline in SVG
Notice
- bezierCurveToPolyline的计算结果是由N个点构成的折线,N取决于设置的精度。
- 理想情况下,计算结果中相邻的两个点的距离等于设置的精度(单位px)。
- 建议精度5-10。
- 如果设置的精度过小或过大(小于1或大于10),可能导致计算异常。
- 设置的精度并不是每次都能达到。
getBezierCurveLength
export function getBezierCurveLength (bezierCurve, precision = 5) {
}
const length = bezierCurveToPolyline(bezierCurve)
polyline
const polyline = [
[20, 70],
[50, 30],
[100, 70],
[150, 30],
[180, 70]
]
polyline in SVG
polylineToBezierCurve
function polylineToBezierCurve (polyline, close = false, offsetA = 0.25, offsetB = 0.25) {
}
const bezierCurve = polylineToBezierCurve(polyline)
const closedBezierCurve = polylineToBezierCurve(polyline, true)
bezierCurve in SVG
closedBezierCurve in SVG