하얗게 쌓인 눈, 나뭇가지에 앉은 눈들은~^^*
새하얀 소금처럼 눈이 부시기도 하지요~^^*
겨울의 눈 온 풍경은 소금 사막의 사계절 풍경~^^* 눈이 깔린 겨울같이 큰 거울을 깔고 그 위에서 편안한 음악을 함께 들을까요~^^* 아침을 덥히고 계셔요~^^* 공부 정리해서 돌아올게요~^^* 쓩우웅~^^*
네~^^* 우리들의 태초의 vehicle은 food과 poison 구별 없이 -5에서 5사이의 무작위적인 기억을 가지고 있는데요. 그래서 플레이할 때마다 이 기억의 weight 가중치가 달라지는데요. 우리는 vehicle의 행동을 관찰하면서 food와 poison에 대한 weight가 각각 얼마일지 유추할 수 밖에 없었지요…
food를 먼저 열심히 먹는 것을 보면…음…food에 대한 기억 가중치가 positive 긍정적이구나…
poison을 우선적으로 먹는 것을 보면 …음..poison 가중치가 더 높은 것 같은데…
캔버스를 벗어나 돌아오지 않는 것을 보면…food와 poison에 대한 기억 가중치가 모두 negative 부정적이어서 아예 캔버스를 벗어나 버리는 구나…. 등등요~^^*
오늘은 이 dna에 심겨진 food와 poison에 대한 기억 가중치 dna[0]와 dna[1]의 값을 시각적으로 표현해 보겠습니다~^^*
(1) food에 대한 유전적 기억 가중치 값 dna[0]을 녹색 선으로 표현해 보겠습니다. vehicle의 몸의 중점에서 몸의 앞 쪽으로 뻗어 나오면 가중치 값이 positive 한 것으로 할 게요. 그리고 몸의 뒤 쪽으로 뻗어 나오면 가중치 값이 negative 한 것으로 하겠습니다.
(2) poison에 대한 유전적 기억 가중치 값 dna[1]을 빨간 선으로 표현해 보겠습니다. 가중치 값이 positive하면 몸의 중심으로부터 몸의 앞 쪽으로 뻗어나오고, negative하면 몸의 뒤 쪽으로 뻗어 나오겠네요.
(3) p5.js graphic 환경에서 y축의 positive 값은 아래를 향하게 되지요? 그래서, 유전적 기억 가중치의 positive 값이 위쪽을 향하는 ( 몸 앞으로 향하는) 선으로 표현될 수 있도록, 기억 가중치 값 앞에 “–“를 덧붙이겠습니다.
(4) 가중치 값을 이 선들의 길이값으로 사용해 보려고 하니, 가중치 값 범위가 -5에서 +5 사이라서 최대 5 pixel이면 눈에 잘 보이지 않겠어요…음…그래서 *20을 해 볼게요…그러면 몸 뒤 쪽으로 최대 100 pixel 또는 몸 앞 쪽으로 최대 100 pixel 길이의 선이 생길 수 있겠네요.
stroke(0, 255, 0);
line(0, 0, 0,-this.dna[0] * 20);
stroke(255, 0, 0);
line(0, 0, 0,-this.dna[1] * 20);
그러면 이제, vehicle을 시각적으로 표현하는 class Vehicle의 내장 함수 display()를 개선해 보겠습니다~^^*
class Vehicle {
.
.
.
display() {
let angle = this.velocity.heading() + PI / 2;
push();
translate(this.position.x, this.position.y);
rotate(angle);
stroke(0, 255, 0);
line(0, 0, 0,-this.dna[0] * 20);
stroke(255, 0, 0);
line(0, 0, 0,-this.dna[1] * 20);
fill(127);
stroke(200);
strokeWeight(1);
beginShape();
vertex(0, -this.r * 2);
vertex(-this.r, this.r * 2);
vertex(this.r, this.r * 2);
endShape(CLOSE);
pop();
}
//dna[0]와 dna[1]의 값이 모두 positive: vehicle의 몸 앞으로 녹색 선과 빨간 선이 겹쳐져 그려집니다. 초록색 선이 더 길면, food를 우선적으로 먹으며 poison을 천천히 먹겠네요. 빨간선이 더 길면, poison을 더 열심히 먹습니다.
//dna[0]와 dna[1]의 값이 모두 negative: vehicle의 몸 뒤로 녹색 선과 빨간 선이 겹쳐져 그려집니다. food와 poison을 피하기 위해 캔버스 밖으로 나가버릴 것 같네요.
//dna[0] positive dna[1] negative: vehicle의 몸 앞으로 녹색 선 vehicle의 몸 뒤로 빨간 선이 그려집니다. food만 먹고 poison을 피할 것 같네요.
//dna[0] negative dna[1] positive: vehicle의 몸 앞으로 빨간 선 vehicle의 몸 뒤로 녹색 선이 그려집니다. poison만 먹고 food를 피할 것 같네요.
.
.
.
}
네~^^* 오늘 저와 함께 food와 poison에 대한 태초의 vehicle의 기억 가중치를 시각적으로 표현해 주셔서 감사합니다~^^* 선명하게 잘 보여주셔서 감사합니다~^^*
내일은 우리 편안하게 음악 함께 듣고요~^^*
화요일 우리의 태초의 vehicle을 다시 만나볼까요~~^^*
네~^^* 좋아요~~^^* 고마워요~~^^*
오늘도~~^^*
반가운 만남 기쁨 나누는 하루 보내시고요!
보람과 뿌듯함으로 몸을 감싸고 따뜻하게 코~^^* 하셔요~~^^*
네~~^^* 꿈은 이루어 집니다~~^^*
댓글 남기기