亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

javascript - canvas畫兩個(gè)四邊形的問(wèn)題
阿神
阿神 2017-04-11 10:57:03
0
6
458

如圖,我在一個(gè)canvas上畫了兩個(gè)四邊形,這兩個(gè)四邊形都可以拉伸

現(xiàn)在是有兩個(gè)需求:
1.這兩個(gè)四邊形都不可以拉成凹四邊形;
2.小四邊形要在大四邊形范圍之內(nèi);

我的思路是這樣的:

A點(diǎn)是四邊形要拖動(dòng)的那個(gè)點(diǎn),他的活動(dòng)范圍是如圖的陰影部分
分別計(jì)算這三條線的斜率,使a點(diǎn)滿足圖中的不等式...
同理計(jì)算外面的大四邊形斜率 ,a點(diǎn)只能在同時(shí)滿足這些條件的范圍內(nèi)拉伸

不知道我想的是否可行,大神門有沒(méi)有更好的辦法求教~~~

阿神
阿神

閉關(guān)修行中......

reply all(6)
Peter_Zhu

1.對(duì)于這兩個(gè)四邊形自身,他們?nèi)我庖稽c(diǎn)都不在其他三點(diǎn)組成的三角形區(qū)域內(nèi);//保證自身是不是凹四邊形
2.拖動(dòng)小四邊形時(shí),小四邊形任意一點(diǎn)都必須在大四邊形區(qū)域內(nèi);
3.拖動(dòng)大四邊形時(shí),小四邊形任意一點(diǎn)都必須在大四邊形區(qū)域內(nèi);
滿足這三個(gè)條件,就基本完成了樓主的需求.
關(guān)于判斷點(diǎn)是否在區(qū)域內(nèi),參考了芋頭大神的js代碼:http://html-js.com/article/1185

巴扎黑

你思路已經(jīng)有了,自己找資料去實(shí)現(xiàn)就行了。如果想別人幫你實(shí)現(xiàn)好把代碼貼出了的話,估計(jì)沒(méi)什么人有這個(gè)時(shí)間

巴扎黑

判斷是否是凸邊形?凸包吧

判斷一個(gè)是否在另一個(gè)內(nèi)?判斷一個(gè)的每個(gè)點(diǎn)在另一個(gè)內(nèi)就可以了

洪濤

就是要判斷一個(gè)點(diǎn)是否在一個(gè)多邊形的內(nèi)部,這里有的多個(gè)算法
其中一個(gè)算法推薦一下。判斷以要判定的點(diǎn)的水平線和多邊形邊的交點(diǎn)的個(gè)數(shù)來(lái)判定
判定點(diǎn)2左右交點(diǎn)個(gè)數(shù)都是奇數(shù),那么在內(nèi)部,否則在外部
http://www.cnblogs.com/luxiaoxun/p/3722358.html
http://alienryderflex.com/polygon/

伊謝爾倫

是不是內(nèi)凹我覺(jué)得用三角函數(shù)會(huì)比較快,sin(A)>0

大家講道理

判斷是否是凹四邊形,我提供一種思路:

檢查四邊形的兩條對(duì)角線(段)是否有交點(diǎn)。有則是凸四邊形,無(wú)則是凹四邊形。

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template