JS實現(xiàn)簡單的Canvas畫圖實例
更新時間:2013年07月04日 15:29:24 作者:
這篇文章介紹了JS實現(xiàn)簡單的Canvas畫圖實例代碼,有需要的朋友可以參考一下
定義變量:
[javascript]
var startX;
var startY;
var endX;
var endY;
var radius;
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
var select = document.getElementsByTagName("select");
var startX;
var startY;
var endX;
var endY;
var radius;
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
var select = document.getElementsByTagName("select");
函數(shù)部分:
[javascript]
window.onload=function() {
canvas.onmousedown = function(e) {
e = e || event;
startX = e.clientX;
startY = e.clientY;
if(select[0].value == "arc") {
canvas.onmousemove = moveShowArc;
} else {
canvas.onmousemove = moveShowRect;
}
}
canvas.onmouseup = function() {
canvas.onmousemove = "";
}
}
function moveShowRect(e) {
context.clearRect(0, 0, 500, 300);
endX = e.clientX - startX;
endY = e.clientY - startY;
context.beginPath();
context.rect(startX, startY, endX, endY);
context.fillStyle = "#8ED6FF";
context.fill();
context.lineWidth = 3;
context.strokeStyle = "black";
context.stroke();
}
function moveShowArc(e) {
context.clearRect(0, 0, 500, 300);
endX = e.clientX - startX;
endY = e.clientY - startY;
radius = Math.sqrt(Math.pow(endX,2)+Math.pow(endY,2));
context.beginPath();
context.arc(startX, startY,radius,0,2 * Math.PI,false);
context.fillStyle = "#8ED6FF";
context.fill();
context.lineWidth = 3;
context.strokeStyle = "black";
context.stroke();
}
window.onload=function() {
canvas.onmousedown = function(e) {
e = e || event;
startX = e.clientX;
startY = e.clientY;
if(select[0].value == "arc") {
canvas.onmousemove = moveShowArc;
} else {
canvas.onmousemove = moveShowRect;
}
}
canvas.onmouseup = function() {
canvas.onmousemove = "";
}
}
function moveShowRect(e) {
context.clearRect(0, 0, 500, 300);
endX = e.clientX - startX;
endY = e.clientY - startY;
context.beginPath();
context.rect(startX, startY, endX, endY);
context.fillStyle = "#8ED6FF";
context.fill();
context.lineWidth = 3;
context.strokeStyle = "black";
context.stroke();
}
function moveShowArc(e) {
context.clearRect(0, 0, 500, 300);
endX = e.clientX - startX;
endY = e.clientY - startY;
radius = Math.sqrt(Math.pow(endX,2)+Math.pow(endY,2));
context.beginPath();
context.arc(startX, startY,radius,0,2 * Math.PI,false);
context.fillStyle = "#8ED6FF";
context.fill();
context.lineWidth = 3;
context.strokeStyle = "black";
context.stroke();
}
[javascript]
復制代碼 代碼如下:
var startX;
var startY;
var endX;
var endY;
var radius;
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
var select = document.getElementsByTagName("select");
var startX;
var startY;
var endX;
var endY;
var radius;
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
var select = document.getElementsByTagName("select");
函數(shù)部分:
[javascript]
復制代碼 代碼如下:
window.onload=function() {
canvas.onmousedown = function(e) {
e = e || event;
startX = e.clientX;
startY = e.clientY;
if(select[0].value == "arc") {
canvas.onmousemove = moveShowArc;
} else {
canvas.onmousemove = moveShowRect;
}
}
canvas.onmouseup = function() {
canvas.onmousemove = "";
}
}
function moveShowRect(e) {
context.clearRect(0, 0, 500, 300);
endX = e.clientX - startX;
endY = e.clientY - startY;
context.beginPath();
context.rect(startX, startY, endX, endY);
context.fillStyle = "#8ED6FF";
context.fill();
context.lineWidth = 3;
context.strokeStyle = "black";
context.stroke();
}
function moveShowArc(e) {
context.clearRect(0, 0, 500, 300);
endX = e.clientX - startX;
endY = e.clientY - startY;
radius = Math.sqrt(Math.pow(endX,2)+Math.pow(endY,2));
context.beginPath();
context.arc(startX, startY,radius,0,2 * Math.PI,false);
context.fillStyle = "#8ED6FF";
context.fill();
context.lineWidth = 3;
context.strokeStyle = "black";
context.stroke();
}
window.onload=function() {
canvas.onmousedown = function(e) {
e = e || event;
startX = e.clientX;
startY = e.clientY;
if(select[0].value == "arc") {
canvas.onmousemove = moveShowArc;
} else {
canvas.onmousemove = moveShowRect;
}
}
canvas.onmouseup = function() {
canvas.onmousemove = "";
}
}
function moveShowRect(e) {
context.clearRect(0, 0, 500, 300);
endX = e.clientX - startX;
endY = e.clientY - startY;
context.beginPath();
context.rect(startX, startY, endX, endY);
context.fillStyle = "#8ED6FF";
context.fill();
context.lineWidth = 3;
context.strokeStyle = "black";
context.stroke();
}
function moveShowArc(e) {
context.clearRect(0, 0, 500, 300);
endX = e.clientX - startX;
endY = e.clientY - startY;
radius = Math.sqrt(Math.pow(endX,2)+Math.pow(endY,2));
context.beginPath();
context.arc(startX, startY,radius,0,2 * Math.PI,false);
context.fillStyle = "#8ED6FF";
context.fill();
context.lineWidth = 3;
context.strokeStyle = "black";
context.stroke();
}
相關(guān)文章
JS 組件系列之Bootstrap Table 凍結(jié)列功能IE瀏覽器兼容性問題解決方案
這篇文章主要介紹了JS 組件系列之Bootstrap Table 凍結(jié)列功能IE瀏覽器兼容性問題解決方案,需要的朋友可以參考下2017-06-06
localStorage設(shè)置有效期和過期時間的簡單方法
眾所周知前端三大緩存,cookie,sessionStorage,localStorage,下面這篇文章主要給大家介紹了關(guān)于localStorage設(shè)置有效期和過期時間的相關(guān)資料,需要的朋友可以參考下2022-02-02
js實現(xiàn)iframe動態(tài)調(diào)整高度的代碼
iframe,尤其是不帶邊框的iframe因為能和網(wǎng)頁無縫的結(jié)合從而不刷新頁面的情況下更新頁面的部分數(shù)據(jù)成為可能,可是iframe的大小卻不像層那樣可以“伸縮自如”,所以帶來了使用上的麻煩,給iframe設(shè)置高度的時候多了也不好,少了更是不行,現(xiàn)在,讓我來告訴大家一種iframe動態(tài)調(diào)整高度的方法,主要是以下JS函數(shù):2008-01-01
layui表格 返回的數(shù)據(jù)狀態(tài)異常的解決方法
今天小編就為大家分享一篇layui表格 返回的數(shù)據(jù)狀態(tài)異常的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09

