3 番目の点は、底辺の垂直二等分線上にありaltitude
、線から 1 単位離れています。
- x 座標と y 座標を平均して、ベースの中点を計算します。
- 高度の勾配を計算します: -dx/dy (dy/dx に垂直)。これでライン (点と勾配) ができました。
- y - 私 = -dx/dy * (x - mx)
- 変数を距離式に代入します: d = sqrt(dx^2 + dy^2)
- d = sqrt((x - mx)^2 + (y - 私)^2)
- d = sqrt((x - mx)^2 + (-dx/dy * (x - mx))^2)
- d^2 = (x - mx)^2 + (-dx/dy * (x - mx))^2
- d^2 - (x - mx)^2 = (-dx/dy * (x - mx))^2
- ±sqrt(d^2 - (x - mx)^2) = -dx/dy * (x - mx)
- ±sqrt(d^2 - (x - mx)^2) * dy/dx = x - mx
- ±sqrt(d^2 - (x - mx)^2) * dy/dx + mx = x
- x = ±sqrt(d^2 - (x - mx)^2) * dy/dx + mx
- 直線方程式 (#2 から) を使用して、他の変数 (ここでは y) を計算します。
- これで 2 つのポイントが得られました。好きな方を選んで...
擬似コード:
dx = x1 - x2
midpoint = ((x1 + x2) / 2, (y1 + y2) / 2)
slope = -dx / (y1 - y2)
x = sqrt(altitude*altitude - dx*dx) / slope + midpoint.x
y = slope * (x - midpoint.x) + midpoint.y
これはおそらく最適な方法ではありません。それが機能するかどうかもわかりません。xD