Recent Posts
Recent Comments
Link
Today
Total
05-20 06:06
관리 메뉴

채린씨의 티스토리

[Creative Coding/p5js] 1.1 - First Shapes 본문

Creative Coding/p5js

[Creative Coding/p5js] 1.1 - First Shapes

채린씨 2022. 3. 9. 03:08

오늘 강의에서는 간단하게 원을 그려보았다. 시작하기 전에, 우측 탭의 LIBRARIES에서 SimpleJS를 추가했다.

 

먼저, 원하는 위치에 원하는 크기의 원 그리기!

// 기본 설정을 하는 곳(캔버스 사이즈, 배경 색상 등)
function setup() {
	simple();
}

// 실제로 그림을 그리는 곳
function draw() {
	// (400, 300) 위치에 크기 300의 원 그리기
	circle(400, 300, 300);
}

* circle(x, y, size) (x, y)에 'size'크기의 원 그리기

 

크기를 30으로 줄여보았다.

// 기본 설정을 하는 곳(캔버스 사이즈, 배경 색상 등)
function setup() {
	simple();
}

// 실제로 그림을 그리는 곳
function draw() {
	// (400, 300) 위치에 크기 30의 원 그리기
	circle(400, 300, 30);
}

원이 크기는 바뀌었지만 그대로 가운데 머물러있는 걸로 봐서, x좌표와 y좌표는 원의 중심의 위치를 가리키는 듯..?

 

크기를 800으로 늘려보았다.

// 기본 설정을 하는 곳(캔버스 사이즈, 배경 색상 등)
function setup() {
	simple();
}

// 실제로 그림을 그리는 곳
function draw() {
	// (400, 300) 위치에 크기 800의 원 그리기
	circle(400, 300, 800);
}

ㄴㅇㄱ? simple()을 이용해 임시 설정해둔 캔버스의 끝을 만났다.

 

이번에는 색칠을 해 봤다.

 

* fill('color') 앞으로 그리는 도형들은 'color'색으로 칠해라!

 

// 기본 설정을 하는 곳(캔버스 사이즈, 배경 색상 등)
function setup() {
	simple();
}

// 실제로 그림을 그리는 곳
function draw() {
	// 앞으로 그리는 도형은 빨간색으로 칠하기
	fill('red');
	// (400, 300) 위치에 크기 300의 원 그리기
	circle(400, 300, 300);
}

보라색으로 칠해보자!

// 기본 설정을 하는 곳(캔버스 사이즈, 배경 색상 등)
function setup() {
	simple();
}

// 실제로 그림을 그리는 곳
function draw() {
	// 앞으로 그리는 도형은 보라색으로 칠하기
	fill('purple');
	// (400, 300) 위치에 크기 300의 원 그리기
	circle(400, 300, 300);
}

그럼 색칠 가능한 색은 어떤 색들이 있을까? 아래 사이트에서 확인하면 된다.

https://www.w3schools.com/cssref/css_colors.asp

 

CSS Colors

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

 

이 중에서 마음에 드는 색으로 칠해봤다.

// 기본 설정을 하는 곳(캔버스 사이즈, 배경 색상 등)
function setup() {
	simple();
}

// 실제로 그림을 그리는 곳
function draw() {
	// 앞으로 그리는 도형은 lightcoral로 칠하기
	fill('lightcoral');
	// (400, 300) 위치에 크기 300의 원 그리기
	circle(400, 300, 300);
}

그럼 원을 여러 개 그리면 어떻게 될까?

// 기본 설정을 하는 곳(캔버스 사이즈, 배경 색상 등)
function setup() {
	simple();
}

// 실제로 그림을 그리는 곳
function draw() {
	// 앞으로 그리는 도형은 lightcoral로 칠하기
	fill('lightcoral');
	// (400, 300) 위치에 크기 300의 원 그리기
	circle(400, 300, 300);
	// (400, 300) 위치에 크기 200의 원 그리기
	circle(400, 300, 200);
}

나중에 그린 원이 위에 그려진다. 그렇다면 더 큰 원을 나중에 그리면?

// 기본 설정을 하는 곳(캔버스 사이즈, 배경 색상 등)
function setup() {
	simple();
}

// 실제로 그림을 그리는 곳
function draw() {
	// 앞으로 그리는 도형은 lightcoral로 칠하기
	fill('lightcoral');
	// (400, 300) 위치에 크기 300의 원 그리기
	circle(400, 300, 300);
	// (400, 300) 위치에 크기 400의 원 그리기
	circle(400, 300, 400);
}

이전에 그린 원을 덮어버린다! 

 

이제, 그리고 싶은 것들을 마음대로 그려보자!

먼저, 까만 윤곽선이 보기 싫어서 없애는 코드를 찾아보았다.

 

* nostroke() 앞으로 그리는 도형들은 외곽선 없이 그려라!

// 기본 설정을 하는 곳(캔버스 사이즈, 배경 색상 등)
function setup() {
	simple();
}

// 실제로 그림을 그리는 곳
function draw() {
	// 앞으로 그리는 도형은 외곽선 없이 그리기
	noStroke();
	// 앞으로 그리는 도형은 lightcoral로 칠하기
	fill('lightcoral');
	// (400, 300) 위치에 크기 300의 원 그리기
	circle(400, 300, 300);
	// (400, 300) 위치에 크기 400의 원 그리기
	circle(400, 300, 400);
}

윤곽선 색을 바꾸고 싶다면?

 

* stroke('color') 앞으로 그리는 도형들은 'color'색의 외곽선으로 그려라!

윤곽선이 너무 얇아서 잘 보이지 않는다.

 

* strokeWeight('size') 앞으로 그리는 도형들은 'size' 두께의 외곽선으로 그려라!

 

// 기본 설정을 하는 곳(캔버스 사이즈, 배경 색상 등)
function setup() {
	simple();
}

// 실제로 그림을 그리는 곳
function draw() {
	// 앞으로 그리는 도형은 lightseagreen으로 외곽선 그리기
	stroke('lightseagreen');
	// 앞으로 그리는 도형은 10 두께의 외곽선으로 그리기
	strokeWeight(10);
	// 앞으로 그리는 도형은 lightcoral로 칠하기
	fill('lightcoral');
	// (400, 300) 위치에 크기 300의 원 그리기
	circle(400, 300, 300);
	// (400, 300) 위치에 크기 400의 원 그리기
	circle(400, 300, 400);
}

 

[무지개 동심원 그리기]

// 기본 설정을 하는 곳(캔버스 사이즈, 배경 색상 등)
function setup() {
	simple();
}

// 실제로 그림을 그리는 곳
function draw() {
	noStroke();
	fill('red');
	circle(400, 300, 350);
	fill('orange');
	circle(400, 300, 300);
	fill('yellow');
	circle(400, 300, 250);
	fill('green');
	circle(400, 300, 200);
	fill('blue');
	circle(400, 300, 150);
	fill('navy');
	circle(400, 300, 100);
	fill('purple');
	circle(400, 300, 50);
}

 

[커서를 따라 그려지는 랜덤한 색의 원들]

// 기본 설정을 하는 곳(캔버스 사이즈, 배경 색상 등)
function setup() {
	createCanvas(windowWidth, windowHeight);
	background(100);
}

// 실제로 그림을 그리는 곳
function draw() {
	noStroke();
	fill("#"+(parseInt(Math.random()*0xffffff)).toString(16));
	ellipse(mouseX, mouseY, 20, 20);
}

 

색이 너무 구리다..

 

[커서를 따라 그려지는 랜덤한 '코랄 계열'색의 원들]

function setup() {
	createCanvas(windowWidth, windowHeight);
	background('floralwhite');
}

function draw() {
	noStroke();
	colors = ['coral', 'papayawhip', 'lightcoral', 'lightsalmon', 'moccasin', 'salmon'];
	fill(colors[Math.floor(Math.random() * colors.length)]);
	ellipse(mouseX, mouseY, 20, 20);
}

 

 

엉엉 재밌어요..

 

 

'Creative Coding > p5js' 카테고리의 다른 글

[Creative coding/P5js] 0.0 - Getting Started  (0) 2022.03.09
Comments