캔버스를 사용하여 Starfield 애니메이션을 만드는 것은 흥미롭고 보람있는 노력입니다. 캔버스 공급 업체로서 저는 애니메이션을 포함한 다양한 창의적인 프로젝트에 캔버스를 사용하는 데 관심이 커지는 것을 목격했습니다. 이 블로그 게시물에서는 기본 개념에서 구현 세부 사항에 이르기까지 캔버스를 사용하여 Starfield 애니메이션을 만드는 과정을 안내합니다.
캔버스의 기본 사항 이해
스타 필드 애니메이션을 만들기 전에 먼저 캔버스가 무엇인지 이해합시다. 캔버스는 JavaScript를 사용하여 즉시 그래픽을 그릴 수있는 HTML5 요소입니다. 게임, 애니메이션 및 데이터 시각화와 같은 대화 형 및 역동적 인 시각적 컨텐츠를 만들 수있는 강력하고 유연한 방법을 제공합니다.
캔버스를 사용하려면 먼저 HTML 파일에서 캔버스 요소를 작성해야합니다.
<canvas id = "starfield"width = "800"height = "600"> </canvas>
이 예에서는 "Starfield"의 ID와 800 픽셀과 600 픽셀의 너비와 높이가있는 캔버스 요소를 만들었습니다.
다음으로 JavaScript를 사용하여 Canvas 요소에 액세스하고 2D 드로잉 컨텍스트를 가져와야합니다.
const canvas = document.getElementById ( 'Starfield'); const ctx = canvas.getContext ( '2d');
그만큼getContext ( '2d')메소드 캔버스에 2D 그래픽을 그리는 데 일련의 메소드 및 속성을 제공하는 객체를 반환합니다.
스타 필드 애니메이션 디자인
이제 우리는 캔버스에 대한 기본적인 이해를 얻었으므로 스타 필드 애니메이션 디자인을 시작합시다. Starfield 애니메이션은 캔버스에 무작위로 분포 된 많은 별들로 구성되며 각 스타는 고유 한 위치, 크기 및 밝기를 갖습니다.


별을 만들려면 간단한 JavaScript 객체를 사용하여 각 별을 표현할 수 있습니다.
기능 별 (x, y, 크기, 밝기) {this.x = x; this.y = y; this.size = size; this.brightness = 밝기; }
이 예에서별생성자 함수는 네 가지 매개 변수를 가져옵니다.엑스그리고그리고캔버스에서 별의 위치를 나타냅니다.크기별의 크기를 나타냅니다명도별의 밝기를 나타냅니다.
다음으로 모든 별을 저장하기 위해 배열을 만들어야합니다.
const stars = []; const numstars = 200; for (i = 0; i <numstars; i ++) {const x = math.random () * canvas.width; const y = math.random () * canvas.height; const size = math.random () * 3 + 1; const 밝기 = math.random (); stars.push (New Star (x, y, 크기, 밝기)); }
이 예에서는 호출 된 배열을 만들었습니다별그리고 200 개의별로 초기화했습니다. 각 별은 캔버스에 무작위로 위치하며 크기는 1 ~ 4 픽셀과 0에서 1 사이의 밝기입니다.
캔버스에 별을 그리는 것
이제 우리는 별을 갖기 때문에 캔버스에 그것들을 그려야합니다. 이렇게하려면 사용할 수 있습니다FillRect2D 드로잉 컨텍스트의 방법 :
함수 drawstars () {ctx.clearRect (0, 0, canvas.width, canvas.height); for (i = 0; i <stars.length; i ++) {const star = stars [i]; ctx.fillstyle =`rgba (255, 255, 255, $ {star.brightness})`; ctx.fillRect (star.x, star.y, star.size, star.size); }}
이 예에서Drawstars기능은 먼저 The를 사용하여 전체 캔버스를 지 웁니다ClearRect방법. 그런 다음, 그것은 모든 별을 살펴 봅니다별배열 및 각 별을 사용하여 그립니다FillRect방법. 그만큼필 스타일속성은 반도당 흰색으로 설정되며 투명성은명도별의 재산.
스타 필드에 애니메이션
애니메이션 효과를 만들려면 시간이 지남에 따라 각 스타의 위치와 밝기를 업데이트해야합니다. 우리는 이것을 사용하여 이것을 할 수 있습니다requestAnimationFrame매끄러운 애니메이션을 만들 수있는 내장 JavaScript 함수 인 메소드 :
함수 animate () {drawstars (); for (i = 0; i <stars.length; i ++) {const star = stars [i]; star.y += 0.1; if (star.y> canvas.height) {star.y = 0; star.x = math.random () * canvas.width; } star.brightness = math.sin (date.now () * 0.001 + i) * 0.5 + 0.5; } requestAnimationFrame (애니메이션); } Animate ();
이 예에서생기 있게 하다기능은 먼저Drawstars캔버스에 모든 별을 그리는 기능. 그런 다음, 그것은 모든 별을 살펴 봅니다별배열 및 업데이트 위치와 밝기. 각 별은 일정한 속도로 아래쪽으로 움직이며 캔버스의 바닥에 도달하면 상단으로 재설정되어 무작위로 재배치됩니다. 각 별의 밝기는 사인파 함수를 사용하여 업데이트되어 반짝이는 효과를 만듭니다.
마지막으로,requestAnimationFrame애니메이션의 다음 프레임을 예약하는 메소드가 호출됩니다. 이렇게하면 애니메이션을 부드러운 프레임 속도로 업데이트하는 연속 루프가 생성됩니다.
다른 캔버스 직물 사용
캔버스 공급 업체로서, 우리는 다양한 응용 분야에 다양한 캔버스 직물을 제공합니다. 예를 들어, 스타 필드 애니메이션을위한 내구성 있고 다재다능한 직물을 찾고 있다면면 캔버스 드롭 천 코튼 직물. 이 직물은 고품질면으로 만들어졌으며 자연스럽고 소박한 모양을 만드는 데 적합합니다.
방수 및 UV 보호 된 직물이 필요한 경우.폴리 에스테르 방수 캔버스 캔버스 직원은 UV가있는 텐트훌륭한 선택입니다. 이 직물은 폴리 에스테르로 만들어졌으며 가혹한 기상 조건을 견딜 수 있도록 설계되어 실외 응용 프로그램에 이상적입니다.
보다 세련되고 실용적인 옵션을 위해면 트실리 캔버스 백 패브릭. 이 패브릭은 면화로 만들어졌으며 백, 배낭 및 기타 액세서리를 만드는 데 적합합니다.
결론
결론적으로, 캔버스를 사용하여 스타 필드 애니메이션을 만드는 것은 HTML5와 JavaScript의 창의적인 가능성을 탐색 할 수있는 재미 있고 보람있는 프로젝트입니다. 이 블로그 게시물에 요약 된 단계를 따르면 청중에게 깊은 인상을 줄 아름답고 역동적 인 Starfield 애니메이션을 만들 수 있습니다.
다음 프로젝트를 위해 캔버스 직물 구매에 관심이 있으시면 자세한 내용은 저희에게 문의하십시오. 우리는 항상 귀하의 요구에 맞는 직물을 찾도록 도와 드리겠습니다.
참조
- html5 캔버스 자습서 : https://developer.mozilla.org/en-us/docs/web/api/canvas_api/tutorial
- JavaScript 애니메이션 튜토리얼 : https://www.w3schools.com/js/js_animation.asp
