摘要:上篇文章解決了四邊形帶旋轉(zhuǎn)角度問題,耗費(fèi)一天時(shí)間想到的解決算法。原來大神早就寫好了算法,可以解決多邊形點(diǎn)擊區(qū)域判斷。旋轉(zhuǎn)方法判斷點(diǎn)擊區(qū)域是否在多邊形范圍內(nèi)
上篇文章解決了四邊形帶旋轉(zhuǎn)角度問題,耗費(fèi)一天時(shí)間想到的解決算法。但是僅僅局限于四邊形。
原來大神早就寫好了算法,可以解決n多邊形點(diǎn)擊區(qū)域判斷。
預(yù)用此算法,首先要保證多邊形第一個(gè)點(diǎn)的x軸為最小值,也就是說先要給多邊形各個(gè)點(diǎn)坐標(biāo)做一個(gè)排序,找到x最小的點(diǎn),放到第一個(gè),其他點(diǎn)依次旋轉(zhuǎn)。
旋轉(zhuǎn)方法:
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]]
判斷點(diǎn)擊區(qū)域是否在多邊形范圍內(nèi):
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; };
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/103119.html
摘要:近日在地圖開發(fā)中遇到需要高度顯示指定區(qū)域的需求,圖形畫出來了,點(diǎn)擊事件卻成為一大難題,在中是沒有點(diǎn)擊事件的,只能通過點(diǎn)擊區(qū)域來判斷是否點(diǎn)擊了對象本來如果是正正經(jīng)經(jīng)的矩形,判斷點(diǎn)擊也不是什么難事,偏偏地圖就是帶著傾斜角度這樣就沒辦法簡單的通過 近日在地圖開發(fā)中遇到需要高度顯示指定區(qū)域的需求,圖形畫出來了,點(diǎn)擊事件卻成為一大難題,在canvas中是沒有dom點(diǎn)擊事件的,只能通過點(diǎn)擊區(qū)域來判...
摘要:結(jié)果,我們當(dāng)時(shí)非常抱以厚望的就是卷積神經(jīng)網(wǎng)絡(luò)模型,或者說是。單反相機(jī)可以讓攝影師調(diào)節(jié)透鏡類型和光圈大小,更好地控制把相片里的哪個(gè)部分作為焦點(diǎn)。更進(jìn)一步,單反相機(jī)的傳感器更大,對光線更敏感,即使在非?;璋档沫h(huán)境下也可以拍出非常漂亮的相片。 Yelp的數(shù)據(jù)庫中已經(jīng)存儲了幾千萬張相片,用戶們現(xiàn)在每天都會上傳大概十萬張,而且速度還在不斷加快。事實(shí)上,我們發(fā)現(xiàn)相片的上傳增長率大于相片的查看率。這些相片...
摘要:雙活體,依然是前最可靠的防攻擊段之。詳解云識客活體檢測技術(shù)以下,我們分析一種多重人臉區(qū)域共享的深度學(xué)習(xí)算法。光流法輔助單目活體判斷最后,針對單目活體,云識客也采用光流法輔助活體判斷的校驗(yàn)機(jī)制。 以下這張照?,是真?實(shí)拍還是對著照?翻拍的? showImg(https://segmentfault.com/img/bVbuoHD); 如果告訴你,這張照?,是對著照?翻拍的照?,你會不會驚...
摘要:引言垃圾收集技術(shù)并不是語言首創(chuàng)的,年誕生于的是第一門真正使用內(nèi)存動(dòng)態(tài)分配和垃圾收集技術(shù)的語言。垃圾收集器所關(guān)注的就是這部分內(nèi)存。收集器是收集器的多線程版,它是第一款并發(fā)收集器。經(jīng)常出現(xiàn)大對象會導(dǎo)致多次出發(fā)垃圾收集。 引言 垃圾收集技術(shù)并不是Java語言首創(chuàng)的,1960年誕生于MIT的Lisp是第一門真正使用內(nèi)存動(dòng)態(tài)分配和垃圾收集技術(shù)的語言。垃圾收集技術(shù)需要考慮的三個(gè)問題是: 哪些內(nèi)存需...
閱讀 3551·2021-11-23 10:10
閱讀 3320·2019-08-30 14:03
閱讀 2077·2019-08-30 13:09
閱讀 3404·2019-08-29 15:29
閱讀 1550·2019-08-29 11:23
閱讀 2018·2019-08-28 18:28
閱讀 2853·2019-08-26 13:34
閱讀 2175·2019-08-26 11:32