小屋創作

日誌2014-11-02 18:51

判斷點是否在三角形內

作者:清淡

純整數、不含除法
//兩點是否在直線同一邊
bool sameSide(int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3){
    int a = y0 - y1;
    int b = x1 - x0;
    int c = x0 * y1 - x1 * y0;
    if( (a * x2 + b * y2 + c) * (a * x3 + b * y3 + c) > 0) return true;
    return false;
}
//點是否在三角形內
bool insideTriangle(int px, int py, int x0, int y0, int x1, int y1, int x2, int y2){
    if (sameSide(px,py,x0,y0,x1,y1,x2,y2)||
        sameSide(px,py,x1,y1,x2,y2,x0,y0)||
        sameSide(px,py,x2,y2,x0,y0,x1,y1)) return false;
    return true;
}

1

0

LINE 分享

相關創作

關於栗原さくら老師的作品

Windows11 KB5037771 (系統組建 226x1.3593) 安全性更新

Windows10 KB5037768 (系統組建 1904x.4412) 安全性更新

留言

開啟 APP

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】