coordinateSwitch static method

Offset coordinateSwitch(
  1. int fixedRotationAngle,
  2. double dx,
  3. double dy
)

传入直角三角形三个顶点坐标和三角形内任意一个坐标点,然后计算得到该坐标点到斜边上的高 通过求大三角形的面积,减去坐标点(x, y)垂直于三角形另外两条边形成的2个三角形面积,再除以斜边得到斜边上的高 坐标系转换(支持 90, 180, -180, -90)

Implementation

// static double getHeightFromHypotenuseAndArbitraryPoint(
//     Offset rectangularCoordinates/**直角坐标 */,
//     Offset acuteAngleCoordinate/**锐角坐标 */,
//     Offset acuteAngleCoordinate2/**锐角坐标 */,
//     Offset arbitraryPoint/** 任意点 */) {
//   final hypotenuseLen = distanceTo(acuteAngleCoordinate, acuteAngleCoordinate2);
//   final rightSide = distanceTo(acuteAngleCoordinate, rectangularCoordinates);
//   final rightSide2 = distanceTo(acuteAngleCoordinate2, rectangularCoordinates);

//   return 0;
// }

///坐标系转换(支持 90, 180, -180, -90)
static Offset coordinateSwitch(int fixedRotationAngle, double dx, double dy) {
  switch (fixedRotationAngle) {
    case 90:
      return Offset(-dy, dx);
    case 180:
    case -180:
      return Offset(-dx, -dy);
    case -90:
      return Offset(dy, -dx);
    default:
      return Offset(dx, dy);
  }
}