中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

如何解決canvas繪圖位置偏離的問題

發布時間:2022-02-23 15:44:56 來源:億速云 閱讀:246 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“如何解決canvas繪圖位置偏離的問題”,內容詳細,步驟清晰,細節處理妥當,希望這篇“如何解決canvas繪圖位置偏離的問題”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

使用 canvas 繪圖時,指定的 div 大小一定不要超過該 div 所能獲得的最大范圍,否則繪制的點會跟實際位置發生偏離。

例如:

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled 1</title> 
<style type="text/css"> 
.style1 { 
  font-size: x-small; 
} 
</style> 

</head> 
 
<body > 
    <div >
            <div id="test" >
                    <canvas id="container" onmousemove="mousemove(event)" onmousedown="mousedown()" onmouseup="mouseup()"></canvas>
            </div>
    </div>
    
    <script type="text/javascript"> 
        var paint = false;
        var start = false;
        var canvas = document.getElementById("container");
        canvas.width = 800;
        canvas.height = 800;
        var offsetY = canvas.offsetTop;
        var offsetX = canvas.offsetLeft;
        var y;
        var x;
        var context = canvas.getContext("2d");
    
        function mousemove(e) {
            if (paint == true){
                if (start == false){
                    context.moveTo(0, 0);
                    start = true;
                } else {
                    context.moveTo(x, y);
                }

                x = e.pageX - offsetX;
                y = e.pageY - offsetY;
                context.lineTo(x, y);
                context.stroke();
            }
        }
    
        function mousedown(event) {
            paint = true;
            console.log("down")
        }
    
        function mouseup(event) {
            paint = false;
            console.log("up")
        }
    
    </script>
</body>  </html>

上例中可以正確的繪制線圖。

如果更改為:

    <div >
            <div id="test" >
                    <canvas id="container" onmousemove="mousemove(event)" onmousedown="mousedown()" onmouseup="mouseup()"></canvas>
            </div>
    </div>

由于 canvas 所需 width 800px 無法滿足,因此繪制線圖時,與實際鼠標位置發生偏離。

讀到這里,這篇“如何解決canvas繪圖位置偏離的問題”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

抚顺县| 双柏县| 新营市| 皮山县| 乌拉特前旗| 黔西县| 泸溪县| 东光县| 鄄城县| 牡丹江市| 高台县| 云安县| 九台市| 荣成市| 开江县| 镇坪县| 嘉义市| 台中市| 肃南| 哈巴河县| 南通市| 固镇县| 桦南县| 乌拉特后旗| 东阿县| 启东市| 通化县| 宁陕县| 韶关市| 牡丹江市| 准格尔旗| 阿城市| 思南县| 滨海县| 广灵县| 宜兰市| 青岛市| 尼玛县| 明水县| 五莲县| 黑水县|