溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Canvas如何實現(xiàn)坐標(biāo)變換

發(fā)布時間:2022-03-15 15:45:46 來源:億速云 閱讀:214 作者:iii 欄目:web開發(fā)

這篇文章主要講解了“Canvas如何實現(xiàn)坐標(biāo)變換”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Canvas如何實現(xiàn)坐標(biāo)變換”吧!

代碼如下:

<html>

<head>

</head>

<body>

<canvas id="myCanvas" width="600" height="300">你的瀏覽器還不支持哦</canvas>

<script type="text/javascript">

var c = document.getElementById("myCanvas");

var cxt = c.getContext("2d");

var slen = 60;

var mlen = 50;

var hlen = 40;

cxt.strokeRect(0, 0, c.width, c.height);

cxt.beginPath();

cxt.strokeStyle = "#00f";

cxt.fillStyle = "#00f";

cxt.arc(200, 150, 5, 0, 2 * Math.PI, true);

cxt.fill();

cxt.closePath();

cxt.beginPath();

cxt.strokeStyle = "#00f";

cxt.arc(200, 150, 100, 0, 2 * Math.PI, true);

cxt.stroke();

cxt.closePath();

cxt.beginPath();

cxt.translate(200, 150); //平移原點;

cxt.rotate(-Math.PI / 2);

cxt.save();

for (var i = 0; i < 60; i++) {

if (i % 5 == 0) {

// cxt.fillStyle = "#ff0000";

cxt.fillRect(80, 0, 20, 5);

cxt.fillText("" + (i / 5 == 0 ? 12 : i / 5), 70, 0);

} else {

// cxt.strokeStyle = "#00f";

cxt.fillRect(90, 0, 10, 2);

}

//document.getElementById("div1").innerText += " " + i;

cxt.rotate(Math.PI / 30);

}

cxt.closePath();

var ls = 0, lm = 0, lh = 0;

function Refresh() {

cxt.restore();

cxt.save();

cxt.rotate(ls * Math.PI / 30);

cxt.clearRect(5, -1, slen+1, 2+2);

cxt.restore(); cxt.save();

cxt.rotate(lm * Math.PI / 30);

cxt.clearRect(5, -1, mlen+1, 3+2);

cxt.restore(); cxt.save();

cxt.rotate(lh * Math.PI / 6);

cxt.clearRect(5, -3, hlen+1, 4+2);

var time = new Date();

var s = ls=time.getSeconds();

var m = lm=time.getMinutes();

var h = lh=time.getHours();

cxt.restore();

cxt.save();

cxt.rotate(s * Math.PI / 30);

cxt.fillRect(5, 0, slen, 2);

cxt.restore(); cxt.save();

cxt.rotate(m * Math.PI / 30);

cxt.fillRect(5, 0, mlen, 3);

cxt.restore(); cxt.save();

cxt.rotate(h * Math.PI / 6);

cxt.fillRect(5, -2, hlen, 4);

}

var MyInterval = setInterval("Refresh();", 1000);

</script>

<div id="div1" style=" background:#00f;"></div>

</body>

</html>

感謝各位的閱讀,以上就是“Canvas如何實現(xiàn)坐標(biāo)變換”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Canvas如何實現(xiàn)坐標(biāo)變換這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI