250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자바스크립트
- MAC
- hover
- css3
- keyframes
- 비전공 개발자
- effect
- xcode
- jQuery
- iPhone
- 백엔드
- image
- HTML
- 풀스택
- button
- SWIFT
- Animation
- iOS 개발자
- IOS
- 애니메이션
- html5
- 개발자
- php
- 프론트엔드
- front-end
- ipad
- CSS
- 비전공자
- javascript
- react
Archives
- Today
- Total
비전공자 개발일기
HTML CANVAS 본문
728x90
SMALL
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTML CANVAS</title>
<style>
article>ul {
list-style: none;
}
</style>
</head>
<body style="text-align: center;">
<main>
<h1>HTML CANVAS</h1>
<p>
CANVAS는 웹 페이제 그래픽을 그려주는 컨테이너<br>
CANVAS는 JAVASCRIPT로 그래픽을 그림
</p>
<article>
<h1>strokeRect(x1,y1,x2,y2) 사각형 그리기</h1>
<ul>
<li>fillStyle: 사각형 색 지정</li>
<li>fillRect: 색이 있는 사각형 그리기</li>
<li>strokeRect: 사각형 테두리 그리기</li>
<li>clearRect: 사각형 모양의 지우개</li>
</ul>
<div class="canvas_container">
<canvas id="canvas1" width="300" height="300" style="border:1px solid">
웹 브라우저가 canvas를 지원하지 않습니다(라는 문장만 출력)
</canvas>
</div>
</article>
<article>
<h2>lineTo 선그리기</h2>
<ul>
<li>moveTo: 선이 시작되는 좌표</li>
<li>lineTo: 선이 끝나는 좌표(연속으로 지정 가능)</li>
<li>
<pre>
ex)let c2 = document.getElementById("canvas2").getContext("2d")
c2.moveTo(0,0);
c2.lineTo(300,100);
c2.lineTo(0,300);
c2.lineTo(150,0);
c2.lineTo(300,300);
c2.lineTo(0,0);
c2.fillStyle="blue"
c2.fill()
c2.stroke();
</pre>
</li>
<li>stroke: 선 그리기 시작</li>
</ul>
<div class="canvas_container">
<canvas id="canvas2" width="300" height="300" style="border:1px solid">
웹 브라우저가 canvas를 지원하지 않습니다(라는 문장만 출력)
</canvas>
</article>
<article>
<h2>Colors, Styles, Shadows 속성 주기</h2>
<ul>
<li>fillStyle : 색, 공간기울기색(gradient), 패턴을 채우는 설정</li>
<li>strokeStyle : 색, 공간기울기색(gradient), 패턴을 그리는 설정(lineWidth로 두께 설정)</li>
<li>shadowColor : 그림자 색</li>
<li>shadowBlur : 그림자 흐림 정도</li>
<li>shadowOffsetX : 그림자 수평 이동(양수: 오른쪽 이동 / 음수: 왼쪽 이동)</li>
<li>shadowOffsetY : 그림자 수직 이동(양수: 아래쪽 이동 / 음수: 위쪽 이동)</li>
</ul>
<canvas id="canvas3" width="300" height="300" style="border:1px solid">
웹 브라우저가 canvas를 지원하지 않습니다(라는 문장만 출력)
</canvas>
</article>
<article>
<h2>GRADIENT 번지는 색(기울기색)</h2>
<p>createLinearGradient(x0, y0, x1, y1)</p>
<ul>
<li>x0: gradient 시적점 x좌표</li>
<li>y0: gradient 시적점 y좌표</li>
<li>x1: gradient 끝점 x좌표</li>
<li>y1: gradient 끝점 x좌표</li>
</ul>
<div class="canvas_container">
<canvas id="canvas4" width="300" height="300" style="border:1px solid"></canvas>
</div>
</article>
</main>
<script>
let c1 = document.getElementById("canvas1").getContext("2d");
// cl => getContext("2d")용 붓
c1.shadowBlur = 10;
c1.shadowColor = "blue";
c1.shadowOffsetX = 10;
c1.shadowOffsetY = 10;
c1.fillStyle = "red"; // fillRect의 색 지정
c1.strokeRect(160, 160, 100, 100);
c1.fillRect(160, 160, 100, 100);
c1.clearRect(80, 80, 100, 100); // 지우개 사각형
c1.shadowBlur = 5;
c1.shadowColor = "black";
c1.strokeStyle = "green";
c1.lineWidth = 5;
c1.strokeRect(10, 10, 200, 200);
let c2 = document.getElementById("canvas2").getContext("2d");
// 선 긋기 전에 포인트를 그릴 곳으로 이동
c2.moveTo(0, 0);
c2.lineTo(300, 100);
c2.lineTo(0, 300);
c2.lineTo(150, 0);
c2.lineTo(300, 300);
c2.lineTo(0, 0);
c2.fillStyle = "blue";
c2.fill();
c2.shadowBlur = 5;
c2.shadowColor = "black";
c2.strokeStyle = "green";
c2.lineWidth = "4";
c2.stroke(); // lineTo로 지정한 좌표를 순서대로 따라다니며 그림
let c3 = document.getElementById("canvas3").getContext("2d");
c3.shadowBlur = 5;
c3.shadowColor = "rgb(0, 0, 0)";
c3.lineWidth = 5;
c3.shadowOffsetX = -20;
c3.shadowOffsetY = -20;
c3.strokeStyle="rgb(150, 80, 150)";
c3.strokeRect(75,75,150,150);
c3.shadowBlur = 10;
c3.shadowColor = "rgb(50, 10, 50)";
c3.shadowOffsetX = 25;
c3.shadowOffsetY = 25;
c3.fillStyle = "rgba(200, 100, 200, .6)";
c3.fillRect(75,75,150,150);
let c4 = document.getElementById("canvas4").getContext("2d");
let gradient = c4.createLinearGradient(50, 50, 150, 0)
gradient.addColorStop(0, "rgb(50,50,50)");
gradient.addColorStop(1, "rgb(200,200,200)");
c4.shadowBlur = 10;
c4.shadowColor = "rgb(50, 50, 50)";
c4.shadowOffsetX = 5;
c4.shadowOffsetY = 5;
c4.fillStyle = gradient;
c4.font = "50px Arial black";
c4.fillText("My Photo", 20, 150);
// c4.fillRect(100,100,300,300)
</script>
</body>
</html>
728x90
LIST
'HTML _CSS' 카테고리의 다른 글
HTML Checkbox 2 (0) | 2021.09.03 |
---|---|
HTML Checkbox (0) | 2021.09.02 |
HTML SVG (0) | 2021.08.30 |
HTML IFrame (0) | 2021.08.29 |
HTML EMMET (0) | 2021.08.24 |