- Go backend (server/)
- Frontend (web/, server/static/)
- Database and deployment files
- Scripts and docs
Co-Authored-By: 狸花猫/Claude-Qwen3.6-Plus 🐾
56 lines
1.8 KiB
JavaScript
56 lines
1.8 KiB
JavaScript
import { pointAtSegments, angleAtSegments, distanceAtSegment, lengthOfSegment } from './segments';
|
|
import polyline from './polyline';
|
|
function getAllPoints(points) {
|
|
var tmp = points.slice(0);
|
|
if (points.length) {
|
|
tmp.push(points[0]);
|
|
}
|
|
return tmp;
|
|
}
|
|
export default {
|
|
/**
|
|
* 计算多边形的包围盒
|
|
* @param {array} points 点的集合 [x,y] 的形式
|
|
* @return {object} 包围盒
|
|
*/
|
|
box: function (points) {
|
|
return polyline.box(points);
|
|
},
|
|
/**
|
|
* 计算多边形的长度
|
|
* @param {array} points 点的集合 [x,y] 的形式
|
|
* @return {object} 多边形边的长度
|
|
*/
|
|
length: function (points) {
|
|
return lengthOfSegment(getAllPoints(points));
|
|
},
|
|
/**
|
|
* 根据比例获取多边形的点
|
|
* @param {array} points 点的集合 [x,y] 的形式
|
|
* @param {number} t 在多边形的长度上的比例
|
|
* @return {object} 根据比例值计算出来的点
|
|
*/
|
|
pointAt: function (points, t) {
|
|
return pointAtSegments(getAllPoints(points), t);
|
|
},
|
|
/**
|
|
* 指定点到多边形的距离
|
|
* @param {array} points 点的集合 [x,y] 的形式
|
|
* @param {number} x 指定点的 x
|
|
* @param {number} y 指定点的 y
|
|
* @return {number} 点到多边形的距离
|
|
*/
|
|
pointDistance: function (points, x, y) {
|
|
return distanceAtSegment(getAllPoints(points), x, y);
|
|
},
|
|
/**
|
|
* 根据比例获取多边形的切线角度
|
|
* @param {array} points 点的集合 [x,y] 的形式
|
|
* @param {number} t 在多边形的长度上的比例
|
|
* @return {object} 根据比例值计算出来的角度
|
|
*/
|
|
tangentAngle: function (points, t) {
|
|
return angleAtSegments(getAllPoints(points), t);
|
|
},
|
|
};
|
|
//# sourceMappingURL=polygon.js.map
|