第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

哪位大佬指點(diǎn)一下,如何讓星星隨機(jī)放置的時(shí)候,不出現(xiàn)畫布邊緣外面。

我自己的思路是
???? 判斷 x 和 y 的數(shù)值,可以判斷出,會(huì)不會(huì)出大于或小于畫布的寬高,之后星星的其他點(diǎn)都設(shè)置好了,如果直接改出畫布的點(diǎn)的數(shù)值,會(huì)出現(xiàn)問題。
????我打算在在畫星星for循環(huán)里進(jìn)行判斷,如果出現(xiàn)了 超出邊界的星星,就提跳出方法,畫下一個(gè),這個(gè)就不畫了,不過這樣不好,減少了星星的繪制數(shù)量。想知道不減少星星數(shù)量繪制出有星星,并且不超出邊界

正在回答

2 回答

有必要這么復(fù)雜么,直接控制x,y的值在正常顯示范圍內(nèi)不就好了,可以根據(jù)大圓大R來計(jì)算x,y具體的范圍值,比如x的范圍值是? 0+R 到 canvas.width-R,y值的范圍也根據(jù)這個(gè)算出來就可以了,具體部分代碼是:

for(var?i?=?0?;?i<110;?i++){
????var?r?=?Math.random()*10?+?10;
????
????var?x?=?Math.max(Math.random()?*?canvas.width,r);
????x?=?Math.min(x,canvas.width?-?r);
????var?y?=?Math.max(Math.random()?*?canvas.height,r);
????y?=?Math.min(y,canvas.height-r);

????var?a?=?Math.random()?*?360;
????wjx(content,x,y,r,r/2.0,"#ff7036","red",0,a);
}

?

3 回復(fù) 有任何疑惑可以回復(fù)我~
//我是通過求出原點(diǎn),判斷最頂端和最低端是否超過邊緣,若超出,則i--?重新循環(huán)這次星星的繪制;
for?(var?j?=?0;?j?<?200;?j++)?{
????let?R=Math.random()*15+5;
????let?x=Math.random()?*?canvas.width;//偏移量
????let?y=Math.random()?*?canvas.height;//偏移量
????????????
????var?x_=Math.cos(90?/?180?*?Math.PI)?*?R?+?x;//求出原點(diǎn)坐標(biāo)
????var?y_=-Math.sin(90?/?180?*?Math.PI)?*?R?+?y?+?R;//求出原點(diǎn)坐標(biāo)
????if(x_-R<0||x_+R>canvas.width){
????????j--;?
????}else?if?(y_-R<0||y_+?R>canvas.height){
????????j--;?
????}else{
????????drawStart(c?,?R?,?R/2.0?,?x?,?y);
????}
}


1 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

哪位大佬指點(diǎn)一下,如何讓星星隨機(jī)放置的時(shí)候,不出現(xiàn)畫布邊緣外面。

我要回答 關(guān)注問題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)