for (size_t i = 0; i < points.size(); ++i) {
length += distance(points[i], points[(i + 1) % points.size()]);
}
return length;
}
// 计算路径角度
double calculateAngle() {
if (points.size() < 3) {
return 0;
}
double total_angle = 0;
for (size_t i = 0; i < points.size(); ++i) {
total_angle += angle(points[i], points[(i + 1) % points.size()], points[(i + 2) % points.size()]);
}
return total_angle;
}
private:
std::vector<Point> points;
};
int main() {
WindingMachine wm;
wm.addPoint({0, 0});
wm.addPoint({1, 0});
wm.addPoint({1, 1});
wm.addPoint({0, 1});