两条线段的夹角计算.pdfVIP

  • 12
  • 0
  • 约2.22千字
  • 约 1页
  • 2023-08-10 发布于上海
  • 举报
两条线段的夹⾓计算 夹⾓ double getAngle2(LineString lineString1, LineString lineString2) { Point line1Start = lineString1.getStartPoint(); Point line1End = lineString1.getEndPoint(); Point line2Start = lineString2.getStartPoint(); Point line2End = lineString2.getEndPoint(); double dx1 = line1End.getX() - line1Start.getX(); double dy1 = line1End.getY() - line1Start.getY(); double dx2 = line2End.getX() - line2Start.getX(); double dy2 = line2End.getY() - line2Start.getY(); double angle1 = Math.atan2(dy1, dx1); int angle1Int = (int) (angle1 * 180 / Math.PI); double angle2 = Math.atan2(dy2, dx2); int angle2Int = (int) (angle2 * 180 / Math.PI); if (angle1 * angle2 = 0) { int abs = Math.abs(angle1Int - angle2Int); if (abs 90) { return 180 - abs; } return abs; } else { double angle = Math.abs(angle1Int) + Math.abs(angle2Int); if (angle 180) { angle = 360 - angle; } if (angle 90) { angle = 180 - angle; } return angle; } } double getAngle(LineString lineString1, LineString lineString2) { double angle1 = Angle.angle(lineString1.getStartPoint().getCoordinate(), lineString1.getEndPoint().getCoordinate()); double angle2 = Angle.angle(lineString2.getStartPoint().getCoordinate(), lineString2.getEndPoint().getCoordinate()); double diff = Angle.diff(angle1, angle2); if (diff Angle.PI_OVER_2) { diff = Math.PI - diff; } return Angle.toDegrees(diff); } 是否是锐⾓ 点积 static double dot(LineString lineString1, LineString lineString2) { double dx0 = lineString1.getEndPoint().getX() - lineString1.getStartPoint().getX(); double dy0 = lineString1.getEndPoint().getY() - lineString1.getStartPoint().getY(); do

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档