asked on
<!DOCTYPE html>
<html>
<head>
<title>HTML, CSS and JavaScript demo</title>
<style>
#drawCanvas{
position:absolute;
top:0;
left:0;
}
</style>
</head>
<body>
<canvas id="canvas"></canvas>
<canvas id="drawCanvas"></canvas>
<script>
var canvas = document.getElementById("canvas"),
ctx = canvas.getContext("2d"),
drawCanvas = document.getElementById("drawCanvas"),
drawCtx = drawCanvas.getContext("2d"),
painting = false,
lastX = 0,
lastY = 0,
curX = 0,
curY = 0,
startX = 0,
startY = 0,
lineThickness = 1;
canvas.width = canvas.height = 600;
drawCanvas.width = drawCanvas.height = 600;
drawCanvas.onmousedown = function(e) {
painting = true;
drawCtx.fillStyle = "#000";
lastX = e.pageX - this.offsetLeft;
lastY = e.pageY - this.offsetTop;
startX = lastX;
startY = lastY;
};
drawCanvas.onmouseup = function(e){
painting = false;
var x2 = e.pageX - this.offsetLeft,
y2 = e.pageY - this.offsetTop;
ctx.strokeStyle = "#000";
ctx.beginPath();
ctx.moveTo(startX, startY);
ctx.lineTo(x2, y2);
ctx.stroke();
drawCtx.clearRect(0, 0, 600, 600);
}
drawCanvas.onmouseclick = function(e) {
drawCtx.fillStyle = "#000";
lastX = e.pageX - this.offsetLeft;
lastY = e.pageY - this.offsetTop;
startX = lastX;
startY = lastY;
if(painting){
}
else{
painting = true;
lastX = e.pageX - this.offsetLeft;
lastY = e.pageY - this.offsetTop;
startX = lastX;
startY = lastY;
}
};
drawCanvas.onmousemove = function(e) {
if (painting) {
mouseX = e.pageX - this.offsetLeft;
mouseY = e.pageY - this.offsetTop;
// find all points between
var x1 = mouseX,
x2 = lastX,
y1 = mouseY,
y2 = lastY;
var steep = (Math.abs(y2 - y1) > Math.abs(x2 - x1));
if (steep){
var x = x1;
x1 = y1;
y1 = x;
var y = y2;
y2 = x2;
x2 = y;
}
if (x1 > x2) {
var x = x1;
x1 = x2;
x2 = x;
var y = y1;
y1 = y2;
y2 = y;
}
var dx = x2 - x1,
dy = Math.abs(y2 - y1),
error = 0,
de = dy / dx,
yStep = -1,
y = y1;
if (y1 < y2) {
yStep = 1;
}
for (var x = x1; x < x2; x++) {
if (steep) {
drawCtx.fillRect(y, x, lineThickness , lineThickness );
} else {
drawCtx.fillRect(x, y, lineThickness , lineThickness );
}
error += de;
if (error >= 0.5) {
y += yStep;
error -= 1.0;
}
}
lastX = mouseX;
lastY = mouseY;
}
}
</script>
</body>
</html>
ASKER
JavaScript is a dynamic, object-based language commonly used for client-side scripting in web browsers. Recently, server side JavaScript frameworks have also emerged. JavaScript runs on nearly every operating system and in almost every mainstream web browser.
TRUSTED BY
ASKER
It has exactly what i need.