1. 2 라인의 수정이 필요합니다. <button onclick="click()">원 그리기</button> -> <button onclick="draw()">원 그리기</button> function click() { -> function draw() {
왜냐하면 click 이라는 이름의 함수는 이미 document 객체에 만들어진 함수이므로 onclick="click()" 라고 하면 버튼이 클릭될 때 독자가 만든 함수가 아니라 이미 만들어진 함수를호출합니다. 그래서 click() 이라는 이름 대신 draw() 로 함수 이름을 바꾸면 좋겟다는 것입니다. draw() 대신에 독자가 원하는 아무 이름이나 만들어도 됩니다.
2. context 객체를 알아내어야 하는 과정이 생략되었군요. 다음 2 라인이 draw() 함수 앞부분에 context를 사용하기 전에 작성되어야 합니다. var canvas = document.getElementById("myCanvas"); var context = canvas.getContext("2d");
3. 결론적으로 독자의 코드를 수정하면 다음과 같습니다. <!DOCTYPE html> <html> <head> <title>버튼</title> </head> <body> <h3>버튼 누르면 원이 그려져요</h3> <hr> <canvas id="myCanvas" style="background-color: aliceblue" width="820" height="470"></canvas> <script> function draw() { var canvas = document.getElementById("myCanvas"); var context = canvas.getContext("2d");
1. 2 라인의 수정이 필요합니다.
<button onclick="click()">원 그리기</button> -> <button onclick="draw()">원 그리기</button>
function click() { -> function draw() {
왜냐하면 click 이라는 이름의 함수는 이미 document 객체에 만들어진 함수이므로 onclick="click()" 라고 하면 버튼이 클릭될 때 독자가 만든 함수가 아니라
이미 만들어진 함수를호출합니다.
그래서 click() 이라는 이름 대신 draw() 로 함수 이름을 바꾸면 좋겟다는 것입니다. draw() 대신에 독자가 원하는 아무 이름이나 만들어도 됩니다.
2. context 객체를 알아내어야 하는 과정이 생략되었군요.
다음 2 라인이 draw() 함수 앞부분에 context를 사용하기 전에 작성되어야 합니다.
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
3. 결론적으로 독자의 코드를 수정하면 다음과 같습니다.
<!DOCTYPE html>
<html>
<head>
<title>버튼</title>
</head>
<body>
<h3>버튼 누르면 원이 그려져요</h3>
<hr>
<canvas id="myCanvas" style="background-color: aliceblue" width="820" height="470"></canvas>
<script>
function draw() {
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
context.beginPath();
context.arc(410, 235, 50, 0, 2*Math.PI, false);
context.lineWidth = 10;
context.strokeStyle = "blue";
context.stroke();
}
</script>
<button onclick="draw()">원 그리기</button>
</body>
</html>