ざきのメモ

2019/05/22

点が線分上にあるかどうかを判定する

点が線分上にあるかどうかを判定する方法をメモしておきます。

方法

点Pが線分AB上にあるかどうかは以下のように算出できます。

if ((A.x <= P.x && P.x <= B.x) || (B.x <= P.x && P.x <= A.x)) {
    if ((A.y <= P.y && P.y <= B.y) || (B.y <= P.y && P.y <= A.y)) {
        if ((P.y * (A.x - B.x)) + (A.y * (B.x - P.x)) + (B.y * (P.x - A.x)) == 0) {
            // 点Pが線分AB上にある
            return true;
        }
    }
}
// 点Pが線分AB上にない
return false;
Copyright © 2017-2021 Ryo Okazaki, all rights reserved.