QT 求兩條直線交點座標

基本的座標

Qt graphwidget 顯示

計算步驟

1. 利用A, B 兩點及C, D形成兩條直線求焦點座標

注意 4 個點的座標需要一致的格式
避免 Qt 座標及一般座標混用

備註:將 Qt 座標 y 值加上負號即可轉換

2. 公式
QPointF 檔案::getIntersectPos(QPointF posA, QPointF posB, QPointF posC, QPointF posD)
{
    QLineF line1(posA, posB);
    QLineF line2(posC, posD);
    QPointF interPos(0,0);
    QLineF::IntersectType type = line1.intersect(line2, &interPos);
    if (type != QLineF::BoundedIntersection)
        interPos = QPointF(0, 0);
    return interPos;
}
若有交點會回傳 QPointF 座標,無則回傳 (0, 0)

3. 注意是點與點之間的線段交點,超出則回傳 (0, 0)
A, B兩點線段可以與 C,D 兩點線段相交
但此種狀況會回傳(0, 0)

留言

熱門文章

TourCard 開通全紀錄 台胞證 支付寶

[ 教學 ] 如何使用 Sourcetree 對 Github 進行版本控制 #Mac OS 版本控制

svn 刪除使者資訊 & 查看使用者帳號密碼