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
- 부트캠프
- git
- Javascript
- 패스트캠퍼스
- 코테
- 백준
- github
- 컴퓨터과학
- DFS
- 프론트엔드개발자
- js
- 국비지원취업
- 컴퓨터공학
- cpu
- 자바스크립트
- 그리디
- KAKAO
- 호이스팅
- computerscience
- html/css/js
- CSS
- 너비우선탐색
- 국비지원
- LinkSnap
- 야놀자
- 알고리즘
- nodejs
- 코딩테스트
- BFS
- CS
Archives
- Today
- Total
My Boundary As Much As I Experienced
p5.js로 점으로 된 웨이브 패턴 만들기 본문
Interactive(HTML Canvas ・three.js ・game)/CSS・Canvas ・ p5.js ・ Pixi.js
p5.js로 점으로 된 웨이브 패턴 만들기
Bumang 2024. 5. 28. 18:38
재밌어 보이는 튜토리얼들을 따라해보고 올릴 예정이다. 추후 여러 튜토리얼끼리 조합하는 것도 해볼 수 있겠다.
// 이번 코드에 쓰일 모듈
class Cell {
constructor(x0, y0, r, angle){
this.r = r;
this.angle = angle;
// 시작 x, y 좌표
this.x0 = x0;
this.y0 = y0;
}
update(){
this.x = this.r*cos(this.angle);
this.y = this.r*sin(this.angle);
this.angle += 0.05; // 어김없이 angle을 바꿀 때마다 cos, sin값이 바뀌며 회전한다.
}
display(){
// 아래 주석 해제하면 공전궤도와 중앙점에서 포인트까지 이은 반지름 같은게 보임..
// 말이 어려운데 그냥 해보면 된다.
// ellipse(this.x0, this.y0, this.r*2, this.r*2);
// line(this.x0, this.y0, this.x0+this.x, this.y0+this.y);
fill(0);
ellipse(this.x0+this.x, this.y0+this.y, 5, 5);
}
}
let grid = [];
let cols = 15;
let rows = 15;
let loc = 100;
function setup() {
createCanvas(400, 400);
// 높이, 폭을 cols, rows 수만큼 등분해줌
let rowSize = height/rows;
let colSize = width/cols;
for (let i=0; i<cols; i++){
grid[i] = []
for (let j=0; j<rows; j++){
// 전형적인 2차원 배열을 만들어서 Cell을 생성해서 넣어주는 코드
// 이때, i*loc+j*loc가 angle의 값이다. 결과적으로 조금씩 다르면서 그 정도는 규칙적인 할당된다.
grid[i][j] = new Cell(colSize/2+i*colSize, rowSize/2+j*rowSize, rowSize/2, i*loc+j*loc);
}
}
}
function draw() {
background(225);
for (let i=0; i<cols; i++){
for (let j=0; j<rows; j++){
// update와 display를 각각 해준다.
grid[i][j].update();
grid[i][j].display();
}
}
}
보고 따라한 영상
https://www.youtube.com/watch?v=DNZPyoMBiFw&list=PL0beHPVMklwh3KNAibTZKkHjN4xILaWvE
'Interactive(HTML Canvas ・three.js ・game) > CSS・Canvas ・ p5.js ・ Pixi.js' 카테고리의 다른 글
200번째 글은 디자인 주제로..! 요새 만들고 있는 인터랙티브 작업물 디자인 공유 (0) | 2024.06.02 |
---|---|
p5.js) 블러된 이미지가 점점 선명해지는 효과 구현하기 (0) | 2024.06.01 |
p5.js로 2차원 pendulum 만들기 (0) | 2024.05.26 |
Nature of Code 1. 벡터 이해하기 (p5.js) (0) | 2024.05.21 |
펄린 노이즈(Perlin Noise)를 이용하여 예쁜(?) 무작위성을 주기 (0) | 2024.05.17 |