亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

?var j = Math.floor(y / 30);為什么除以30

var j = Math.floor(y / 30);為什么除以30

正在回答

3 回答

上面同學的說法不太對,不是因為方面操作吧。

var x=e.offsetX;//獲取的是相對于整個canvas容器的x坐標值

var y=e.offsetY;//獲取的是相對于整個canvas容器的y坐標值

var i = Math.floor(x/30);

var j = Math.floor(y/30);

oneStep(i,j,me); //傳入i,j值

context.arc(15+i*30,15+j*30,13,0,2*Math.PI) ;//oneStep(i,j,me)里的畫圓函數

以上其實 可以 等同于 15+i*30=x; 15+j*30=y; 已知x,y值,通過除30取整獲取i,j值再畫圓。

以上可能是愚見,見笑了。

1 回復 有任何疑惑可以回復我~

有一點我說錯了,重新說:比如與實際坐標(15,315)對應的坐標就是(15/30,315/30)(ps:還需要進行向下取整),即坐標(0,10)。

0 回復 有任何疑惑可以回復我~

var drawChessBoard=function(){

????for(var i=0;i<15;i++)

????{

????????context.moveTo(15+30*i,15);

????????context.lineTo(15+30*i,435);

????????context.stroke();

????????context.moveTo(15,15+30*i);

????????context.lineTo(435,15+30*i);

????????context.stroke();

????}

}

繪制棋盤的直線時,橫坐標是15+i*30,縱坐標15+j*30,這些實際坐標數值比較大,不方便操作。把實際坐標做一個運算換成等價坐標就比較方便了。所以先除以30而后向下取整,得到一個橫、縱坐標的數值都在15以內的一個等價坐標。比如與實際坐標(315,315)對應的坐標就是(15/30,315/30)(ps:還需要進行向下取整),即坐標(0,10)。

這是我的理解,不知我是否講的清楚了呢?

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

?var j = Math.floor(y / 30);為什么除以30

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號