Triangle

triangle は三角形の代表的な中心や円を求める module です。

重心、内心、傍心、外心、垂心、内接円、傍接円、外接円を扱えます。

import

import atcoder/extra/geometry/geometry_template
import atcoder/extra/geometry/triangle

定義

proc centroid[Real](a, b, c: Point[Real]): Point[Real]

proc incircle[Real](a, b, c: Point[Real]): Circle[Real]
proc incenter[Real](a, b, c: Point[Real]): Point[Real]

proc excircle[Real](a, b, c: Point[Real]): array[3, Circle[Real]]
proc excenter[Real](a, b, c: Point[Real]): array[3, Point[Real]]

proc circumcircle[Real](a, b, c: Point[Real]): Circle[Real]
proc circumcenter[Real](a, b, c: Point[Real]): Point[Real]

proc orthocenter[Real](a, b, c: Point[Real]): Point[Real]

使用例

let  a = initPoint[float](0.0, 0.0)  b = initPoint[float](4.0, 0.0)  c = initPoint[float](0.0, 3.0)let g = centroid(a, b, c)let ic = incircle(a, b, c)let cc = circumcircle(a, b, c)doAssert g.re == 4.0 / 3.0doAssert g.im == 1.0doAssert ic.p.re == 1.0doAssert ic.p.im == 1.0doAssert ic.r == 1.0doAssert cc.p.re == 2.0doAssert cc.p.im == 1.5doAssert cc.r == 2.5

制約

計算量

各関数は定数時間です。