1 line
6.9 KiB
JSON
1 line
6.9 KiB
JSON
{"ast":null,"code":"import { min as v2Min, max as v2Max, scale as v2Scale, distance as v2Distance, add as v2Add, clone as v2Clone, sub as v2Sub } from '../../core/vector.js';\nexport default function smoothBezier(points, smooth, isLoop, constraint) {\n var cps = [];\n var v = [];\n var v1 = [];\n var v2 = [];\n var prevPoint;\n var nextPoint;\n var min;\n var max;\n\n if (constraint) {\n min = [Infinity, Infinity];\n max = [-Infinity, -Infinity];\n\n for (var i = 0, len = points.length; i < len; i++) {\n v2Min(min, min, points[i]);\n v2Max(max, max, points[i]);\n }\n\n v2Min(min, min, constraint[0]);\n v2Max(max, max, constraint[1]);\n }\n\n for (var i = 0, len = points.length; i < len; i++) {\n var point = points[i];\n\n if (isLoop) {\n prevPoint = points[i ? i - 1 : len - 1];\n nextPoint = points[(i + 1) % len];\n } else {\n if (i === 0 || i === len - 1) {\n cps.push(v2Clone(points[i]));\n continue;\n } else {\n prevPoint = points[i - 1];\n nextPoint = points[i + 1];\n }\n }\n\n v2Sub(v, nextPoint, prevPoint);\n v2Scale(v, v, smooth);\n var d0 = v2Distance(point, prevPoint);\n var d1 = v2Distance(point, nextPoint);\n var sum = d0 + d1;\n\n if (sum !== 0) {\n d0 /= sum;\n d1 /= sum;\n }\n\n v2Scale(v1, v, -d0);\n v2Scale(v2, v, d1);\n var cp0 = v2Add([], point, v1);\n var cp1 = v2Add([], point, v2);\n\n if (constraint) {\n v2Max(cp0, cp0, min);\n v2Min(cp0, cp0, max);\n v2Max(cp1, cp1, min);\n v2Min(cp1, cp1, max);\n }\n\n cps.push(cp0);\n cps.push(cp1);\n }\n\n if (isLoop) {\n cps.push(cps.shift());\n }\n\n return cps;\n}","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src/qingge-Market/qingge-vue/node_modules/zrender/lib/graphic/helper/smoothBezier.js"],"names":["min","v2Min","max","v2Max","scale","v2Scale","distance","v2Distance","add","v2Add","clone","v2Clone","sub","v2Sub","smoothBezier","points","smooth","isLoop","constraint","cps","v","v1","v2","prevPoint","nextPoint","Infinity","i","len","length","point","push","d0","d1","sum","cp0","cp1","shift"],"mappings":"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","sourcesContent":["import { min as v2Min, max as v2Max, scale as v2Scale, distance as v2Distance, add as v2Add, clone as v2Clone, sub as v2Sub } from '../../core/vector.js';\r\nexport default function smoothBezier(points, smooth, isLoop, constraint) {\r\n var cps = [];\r\n var v = [];\r\n var v1 = [];\r\n var v2 = [];\r\n var prevPoint;\r\n var nextPoint;\r\n var min;\r\n var max;\r\n if (constraint) {\r\n min = [Infinity, Infinity];\r\n max = [-Infinity, -Infinity];\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n v2Min(min, min, points[i]);\r\n v2Max(max, max, points[i]);\r\n }\r\n v2Min(min, min, constraint[0]);\r\n v2Max(max, max, constraint[1]);\r\n }\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n var point = points[i];\r\n if (isLoop) {\r\n prevPoint = points[i ? i - 1 : len - 1];\r\n nextPoint = points[(i + 1) % len];\r\n }\r\n else {\r\n if (i === 0 || i === len - 1) {\r\n cps.push(v2Clone(points[i]));\r\n continue;\r\n }\r\n else {\r\n prevPoint = points[i - 1];\r\n nextPoint = points[i + 1];\r\n }\r\n }\r\n v2Sub(v, nextPoint, prevPoint);\r\n v2Scale(v, v, smooth);\r\n var d0 = v2Distance(point, prevPoint);\r\n var d1 = v2Distance(point, nextPoint);\r\n var sum = d0 + d1;\r\n if (sum !== 0) {\r\n d0 /= sum;\r\n d1 /= sum;\r\n }\r\n v2Scale(v1, v, -d0);\r\n v2Scale(v2, v, d1);\r\n var cp0 = v2Add([], point, v1);\r\n var cp1 = v2Add([], point, v2);\r\n if (constraint) {\r\n v2Max(cp0, cp0, min);\r\n v2Min(cp0, cp0, max);\r\n v2Max(cp1, cp1, min);\r\n v2Min(cp1, cp1, max);\r\n }\r\n cps.push(cp0);\r\n cps.push(cp1);\r\n }\r\n if (isLoop) {\r\n cps.push(cps.shift());\r\n }\r\n return cps;\r\n}\r\n"]},"metadata":{},"sourceType":"module"} |