完成第一屏幕页面基本布局以及TheHeader和DigitalFlop的UI界面
This commit is contained in:
27
src/render/api/util.js
Normal file
27
src/render/api/util.js
Normal file
@@ -0,0 +1,27 @@
|
||||
export function filterNonNumber (array) {
|
||||
return array.filter(n => typeof n === 'number')
|
||||
}
|
||||
|
||||
export function mulAdd (nums) {
|
||||
nums = filterNonNumber(nums)
|
||||
|
||||
return nums.reduce((all, num) => all + num, 0)
|
||||
}
|
||||
|
||||
export function getTwoPointDistance (pointOne, pointTwo) {
|
||||
const minusX = Math.abs(pointOne[0] - pointTwo[0])
|
||||
|
||||
const minusY = Math.abs(pointOne[1] - pointTwo[1])
|
||||
|
||||
return Math.sqrt(minusX * minusX + minusY * minusY)
|
||||
}
|
||||
|
||||
export function getPolylineLength(points) {
|
||||
const lineSegments = new Array(points.length - 1)
|
||||
.fill(0)
|
||||
.map((foo, i) => [points[i], points[i + 1]])
|
||||
|
||||
const lengths = lineSegments.map(item => getTwoPointDistance(...item))
|
||||
|
||||
return mulAdd(lengths)
|
||||
}
|
||||
Reference in New Issue
Block a user