오늘은 살짝살짝 구겨지거나 펴지는 도형의 크기와 상하좌우 비례를 마우스/손가락으로 조정하는 프로그램을 만들어 보겠습니다~^^*
도형의 테두리를 결정짓는 것은 회전각의 빗변이었지요? 이 빗변의 길이를 살짝살짝 늘이거나 줄이거나 하면서 회전을 하면, 테두리가 불규칙적인 도형이 만들어 질 것 같아요!! 우리 함께 실험해 볼까요~^^*? YEAH~~~!!!!
아래의 동영상을 클릭하시면 오늘 공부내용을 바로 시작(14:45)할 수 있어요~^^*
(1)도형의 크기가 변화하려면, 기본 빗변 길이에 어떤 값을 빼거나 늘이면 될 것 같아요. (2)도형의 테두리가 살짝살짝 구겨지려면, 빗변 길이에 어떤 범위의 무작위값을 빼거나 늘이면 될까요? (3)상하좌우 비례가 변화하려면, x축 길이값과 y축 길이값을 독립적으로 조정하면 어떨까요? (4)도형의 모양이 다양하려면, 회전각 크기를 다양하게 설정해 볼까요~^^* (5)도형의 테두리를 점으로도 표현해 보고, 선으로도 묘사해 보고 싶어요~^^* 참~~ 재~미겠~지요~~^^*
그래서!!!
1. x = (r + xOffset) * cos(angle);
2. y = (r + yOffset) * sin(angle);
3. x = (r + xOffset) * cos(angle) + random(최소값, 최대값);
4. y = (r + yOffset) * sin(angle) + random(최소값, 최대값);
5. xOffset = map(mouseX, 0, width, 최소값, 최대값);
6. yOffset = map(mouseY, 0, height, 최소값, 최대값);
7. angle += 0.01 / angle += PI/2 / angle += 2*PI/3, etc
8. point(x, y); / vertex(x, y);
등을 사용해서 우리 이제 도형 만들기 해 볼까요~~~~? 출발~~~~^^*
하나. 노란 유채꽃밭 테두리를 가진 타원형을 만들어 봅시다!
// 마우스/손가락으로 타원형의 모양을 다양하게 변화시켜 봅시다!!
// 흔~들리는 봄~바람에~~유 채 꽃~펴요~~
let r = 0;
let increment = 0.01;
function setup() {
createCanvas(400, 400);
}
function draw() {
background(0);
let xWidth = map(mouseX, 0, width, -150, 150);
let yWidth = map(mouseY, 0, height, -150, 150);
translate(200,200);
strokeWeight(7);
stroke(255, 255, 0);
noFill();
beginShape();
for(let a = 0; a < TWO_PI; a+= increment){
let x = (r+xWidth)*cos(a) + random(-50, 50);
let y = (r+yWidth)*sin(a) + random(-50, 50);
point(x,y);
}
endShape(CLOSE);
}
// 마우스/손가락으로 타원형의 모양을 다양하게 변화시켜 봅시다!!
// 붉은 가지 덤불로 둘러싸인 비밀의 정원을 만들어 봅시다.
let r = 0;
let increment = 0.01;
function setup() {
createCanvas(400, 400);
}
function draw() {
background(0);
let xWidth = map(mouseX, 0, width, -150, 150);
let yWidth = map(mouseY, 0, height, -150, 150);
translate(200,200);
strokeWeight(1);
stroke(255, 0, 0);
noFill();
beginShape();
for(let a = 0; a < TWO_PI; a+= increment){
let x = (r+xWidth)*cos(a) + random(-50, 50);
let y = (r+yWidth)*sin(a) + random(-50, 50);
vertex(x,y);
}
endShape(CLOSE);
}
//우리가 보면 꽁꽁 얼어붙는 댄서 도형을 만들어 봅시다!
let r = 0;
let increment = 0.4;
function setup() {
createCanvas(400, 400);
}
function draw() {
background(0);
let xWidth = map(mouseX, 0, width, -150, 150);
let yWidth = map(mouseY, 0, height, -150, 150);
translate(200,200);
strokeWeight(7);
stroke(255, 125, 100);
fill(100, 125, 255);
noLoop();
//얼었다!!!
beginShape();
for(let a = 0; a < TWO_PI; a+= increment){
let x = (r+xWidth)*cos(a) + random(-50, 50);
let y = (r+yWidth)*sin(a) + random(-50, 50);
vertex(x,y);
}
endShape(CLOSE);
}
오늘 다양한 크기와 상하좌우 비례를 가진 도형을 우리가 마우스/손가락으로 조정하며 만들어 봤어요~ 전체적 형태의 느낌은 유지하면서도 리듬감있게 변화되는 비례와 크기. 마우스/손가락에 의해 생겨나는 리듬에 따라 춤을 추고 노래를 부르는 멋진 합창단원들의 집합체 같아요~
점심이 너무 맛있어서 살짝쿵 상체 댄스를 하다 자세를 바로잡곤하는 수줍은 댄서가 되어 볼까요~^^*
오늘도 저와 함께 코딩 공부해 주셔서 감사합니다~^^*
우리 내일 또 만나서 함께 공부하기로 해요~~~^^*
네, 꿈은 이루어 집니다!!
댓글 남기기