I am trying to draw the bottom half of the circle using the appropriate functions x = cos (theta), y = sin (theta). If I repeat the theta from Math.PI to 2 * Math.PI, I seem to get the top half of the circle:
What am I doing wrong in this piece of code:
window.onload = function() { var canvas = document.getElementById('circle-canvas'); if (canvas && canvas.getContext) { var context = canvas.getContext('2d'); if (context) { context.strokeStyle = "#369"; context.lineWidth = 4; j = canvas.width / 2; k = canvas.height / 2; r = canvas.width / 4; function computeX(theta, r, j, k){ return r * Math.cos(theta) + j; } function computeY(theta, r, j, k){ return r * Math.sin(theta) + k; } start = Math.PI; context.lineTo(computeX(start, r, j, k), computeY(start, r, j, k)); for(var theta = start; theta <= (2*Math.PI); theta += .1) { x = computeX(theta, r, j, k); y = computeY(theta, r, j, k), context.lineTo(x, y); } context.stroke(); context.closePath(); } } }
EDIT: I know about arc function. I need to implement the arc in this way, because it will be used as part of a more serious problem, when I need to calculate each individual point of the arc.
source share