みさご解体新書

中点

概要

O x y A(62,356) B(380,60) 中点(221, 208)

線分上で、両端からの距離が等しい点のことを中点と呼ぶ。

コード例

type Point = { x: number; y: number };

function midpoint(a: Point, b: Point): Point {
  const c: Point = { x: 0, y: 0 };
  c.x = (a.x + b.x) / 2;
  c.y = (a.y + b.y) / 2;

  return c;
}
console.log(midpoint({ x: 10, y: 10 }, { x: 10, y: 10 })); // { x: 10, y: 10 }
console.log(midpoint({ x: 10, y: 10 }, { x: 15, y: 10 })); // { x: 12.5, y: 10 }
console.log(midpoint({ x: 10, y: 10 }, { x: 15, y: 15 })); // { x: 12.5, y: 12.5 }

x 軸, y 軸ごとに平均を取り、それを新たな (x, y) にして返却する。

// 一次元の場合
function midpoint(a: number, b: number): number {
  return (a + b) / 2;
}

// 三次元の場合
function midpoint(a: Point3d, b: Point3d): Point3d {
  const c = { x: 0, y: 0, z: 0 };
  c.x = (a.x + b.x) / 2;
  c.y = (a.y + b.y) / 2;
  c.z = (a.z + b.z) / 2;
  return c;
}

二次元以外の場合も、軸ごとに平均を取れば、その次元での中点を求める処理になる。

ソースコード

app.ts