double angleBetweenPoints(const Point& A, const Point& B, const Point& C) {
//计算向量A->B和->CB ∠ABC
double vecAB_x = A.x - B.x;
double vecAB_y = A.y - B.y;
double vecCB_x = C.x - B.x;
double vecCB_y = C.y - B.y;
/*
// 计算向量A->C和B->C ∠ACB
double vecAC_x = A.x - C.x;
double vecAC_y = A.y - C.y;
double vecBC_x = B.x - C.x;
double vecBC_y = B.y - C.y;
*/
// 计算向量AB和CB的点积
double dotProduct = vecAB_x * vecCB_x + vecAB_y * vecCB_y;
// 计算向量AB和CB的长度
double lengthAC = std::sqrt(vecAB_x * vecAB_x + vecAB_y * vecAB_y);
double lengthBC = std::sqrt(vecCB_x * vecCB_x + vecCB_y * vecCB_y);
// 计算夹角cos(θ)
double cosTheta = dotProduct / (lengthAC * lengthBC);
// 使用反余弦函数acos计算夹角θ
double angle = std::acos(cosTheta);
// 将弧度转换为度
angle = angle * 180.0 / M_PI;
return angle;
}