ある三角形の頂点のうち、最後の頂点を求める方法
今日は小ネタです。
三角形ABCの各頂点の座標が、a, b, c であるものとします。
この三角形ABCのうち、外から渡した座標 d, e のいずれでもない、最後の頂点を求めて下さい。ただし d, e は、必ず a, b, c のうちのいずれかと一致し、また d≠e であるものとします。
答え:a + b + c - d - e
案外、思いつかないものです。
ちなみにこの方法は、a〜e が頂点座標ではなく、頂点配列のインデックスの場合にも利用できます。
似たようなテクニックに、「3つの数字のうち、真ん中の値を求める」のがあります。
template <class T> T middle(const T& a, const T& b, const T& c) { return a + b + c - std::min(a, std::min(b, c)) - std::max(a, std::max(b, c)); }