摘要:上篇文章解決了四邊形帶旋轉角度問題,耗費一天時間想到的解決算法。原來大神早就寫好了算法,可以解決多邊形點擊區域判斷。旋轉方法判斷點擊區域是否在多邊形范圍內
上篇文章解決了四邊形帶旋轉角度問題,耗費一天時間想到的解決算法。但是僅僅局限于四邊形。
原來大神早就寫好了算法,可以解決n多邊形點擊區域判斷。
預用此算法,首先要保證多邊形第一個點的x軸為最小值,也就是說先要給多邊形各個點坐標做一個排序,找到x最小的點,放到第一個,其他點依次旋轉。
旋轉方法:
function sort(ele) { var min = 0, arr = [], len = ele.length; for(var n = 0; n < len; n++){ if(ele[n][0] < ele[min][0]){ min = n } } if(min != 0){ for(var x = min; x < ele.length; x++){ arr.push(ele[x]); } for(var y = 0; y < min; y++){ arr.push(ele[y]); } return arr } return ele; } var bbox = [[4],[1],[2],[3]]; sort(bbox)//[[1],[2],[3],[4]]
判斷點擊區域是否在多邊形范圍內:
navi_utils.pointInPolygon = function (pos, polygon) { var inside = false; var polygonSize = polygon.length; var val1, val2; for(var i = 0; i < polygonSize; i++){ var p1 = polygon[(i + polygonSize)%polygonSize]; var p2 = polygon[(i + 1 + polygonSize)%polygonSize]; if(pos[1] < p2[1]){ if(pos[1] >= p1[1]){ val1 = (pos[1] - p1[1]) * (p2[0] - p1[0]); val2 = (pos[0] - p1[0]) * (p2[1] - p1[1]); if(val1 > val2){ inside = ! inside; } } }else if( pos[1] < p1[1]){ val1 = (pos[1] - p1[1]) * (p2[0] - p1[0]); val2 = (pos[0] - p1[0]) * (p2[1] - p1[1]); if(val1 < val2){ inside = ! inside; } } } return inside; };
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/103119.html
摘要:近日在地圖開發中遇到需要高度顯示指定區域的需求,圖形畫出來了,點擊事件卻成為一大難題,在中是沒有點擊事件的,只能通過點擊區域來判斷是否點擊了對象本來如果是正正經經的矩形,判斷點擊也不是什么難事,偏偏地圖就是帶著傾斜角度這樣就沒辦法簡單的通過 近日在地圖開發中遇到需要高度顯示指定區域的需求,圖形畫出來了,點擊事件卻成為一大難題,在canvas中是沒有dom點擊事件的,只能通過點擊區域來判...
摘要:結果,我們當時非常抱以厚望的就是卷積神經網絡模型,或者說是。單反相機可以讓攝影師調節透鏡類型和光圈大小,更好地控制把相片里的哪個部分作為焦點。更進一步,單反相機的傳感器更大,對光線更敏感,即使在非常昏暗的環境下也可以拍出非常漂亮的相片。 Yelp的數據庫中已經存儲了幾千萬張相片,用戶們現在每天都會上傳大概十萬張,而且速度還在不斷加快。事實上,我們發現相片的上傳增長率大于相片的查看率。這些相片...
摘要:雙活體,依然是前最可靠的防攻擊段之。詳解云識客活體檢測技術以下,我們分析一種多重人臉區域共享的深度學習算法。光流法輔助單目活體判斷最后,針對單目活體,云識客也采用光流法輔助活體判斷的校驗機制。 以下這張照?,是真?實拍還是對著照?翻拍的? showImg(https://segmentfault.com/img/bVbuoHD); 如果告訴你,這張照?,是對著照?翻拍的照?,你會不會驚...
摘要:引言垃圾收集技術并不是語言首創的,年誕生于的是第一門真正使用內存動態分配和垃圾收集技術的語言。垃圾收集器所關注的就是這部分內存。收集器是收集器的多線程版,它是第一款并發收集器。經常出現大對象會導致多次出發垃圾收集。 引言 垃圾收集技術并不是Java語言首創的,1960年誕生于MIT的Lisp是第一門真正使用內存動態分配和垃圾收集技術的語言。垃圾收集技術需要考慮的三個問題是: 哪些內存需...
閱讀 3542·2021-11-23 10:10
閱讀 3309·2019-08-30 14:03
閱讀 2070·2019-08-30 13:09
閱讀 3399·2019-08-29 15:29
閱讀 1545·2019-08-29 11:23
閱讀 2010·2019-08-28 18:28
閱讀 2847·2019-08-26 13:34
閱讀 2172·2019-08-26 11:32