This JavaScript program demonstrates how to draw a circle using an image data instance to set individual pixels on a canvas element.
<!DOCTYPE html>
<html>
<head>
<title>XoaX.net's Javascript</title>
<script type="text/javascript" src="UseImageDataToDrawACircle.js"></script>
</head>
<body onload="Initialize()">
<canvas id="idCanvas" width="600" height ="600" style="background-color: #F0F0F0;"></canvas>
</body>
</html>function Initialize() {
var qCanvas = document.getElementById("idCanvas");
var qContext = qCanvas.getContext("2d");
var qImageData = qContext.createImageData(100, 100);
// Change the actual pixel data. There are 4 channels per pixel rgba.
// The array begins in the upper-left corner and pixels
for (var i = 0; i < qImageData.data.length; i += 4) {
// The pixel (x, y) in the coordinate ranges [-50, 50] is at ((i % 400)/4 - 50, floor(i/400) - 50)
var x = (i % 400)/4 - 50;
var y = Math.floor(i/400) - 50;
// The y-coordinate is upside-down, but it doesn't matter because I am drawing a circle
if (x*x + y*y <= 2500) {
qImageData.data[i] = 25;
qImageData.data[i+1] = 50;
qImageData.data[i+2] = 100;
qImageData.data[i+3] = 64;
}
}
// Use the image data to draw the circle several times.
qContext.putImageData(qImageData, 100, 200);
qContext.putImageData(qImageData, 300, 400);
qContext.putImageData(qImageData, 400, 100);
}
© 20072025 XoaX.net LLC. All rights reserved.