Silverback9

#야생으로

Creative Coding 독학 제280일 2025년01월01일(수)

새해 입니다!!!

2025년 입니다!!!

새해 복 많이 받으셔요~~^^*

신년 음악회 공연 1 작품 편안히 감상하시고 계셔요~~^^* 저는 코딩 공부 정리해서 돌아올게요~~^^* 쓩~~^^*

네~~^^*

어제 우리는 fitness 적합성 수치를 0에서 1사이 구간 안에 담기 위해서

var d = dis(this.pos.x, this.pos.y, target.x, target.y);
this.fitness = 1 / d;

작업문을 만들어 보았습니다~^^* normalize 정규화 작업까지 함께 수행되는 작업문이었는데요…

d가 0이 되는 경우의 <<1 / d = 1 / 0 = 무한대>> 발생 가능성에 대해 고민을 했었는데요.

이 무한대 값 발생의 경우를 예방하는 작업문으로 대체해 보려고 합니다~^^*

var d = dis(this.pos.x, this.pos.y, target.x, target.y);
this.fitness = map( d, 0, width, width, 0);

우리의 캔버스 화면은 가로 세로 (400, 400)이라서 내장 변수 width( == 400) 를 가로방향 세로방향 모두에 사용할 수 있을 것 같아요.

현재 target이 화면 가로측 정중앙 그리고 세로측 위에서 아래로 100 픽셀 내려간 부분에 위치하고 있어서요~^^*

target = createVector(width/2, 100);

로켓이 화면 안 뿐만 아니라 화면 모서리 어느 부분에 있든, target과의 거리는 width를 넘을 일을 없을 것 같아요~^^*

그래서 넉넉잡아 거리의 최고치를 width로 잡아볼까 싶어요..

(음…화면 밖에 나간 로켓의 경우….는 아직…잘 모르겠어요… 처음엔…로켓의 속도의 힘이 0.1이라서 200프레임 안에 직선운동의 경우 0.1*200까지 갈 수 있나 싶어서, 세로방향 하향 직선/대각선 운동을 하는 경우 최대 거리를 생각해 보았는데요…속도의 힘이라는 것이…frame 단위 이동거리를 나타내는 것은 아닌 것 같아서….음… frame마다 속도의 방향이 무작위로 바뀌고 힘은 0.1로 고정된 벡터를 새롭게 만들어 로켓의 속도에 저장한다는 것이 frame이 기준이 되는 힘을 생성된다는 것은 아닌 것 같아서….속도는 단위 시간 당 위치변화율을 의미하는 것 같은데….200프레임을 초당 30 frame으로 계산해 보니 6초 정도가 나오는데…로켓의 속도의 단위시간이 초인지…밀리초인지…확인해 봐야 할 것 같아요…200 프레임 동안 거의 수직운동을 해서 목표물 근처까지 가는 로켓이 관찰되어…300픽셀 이동도 가능한 것 같거든요… 함수 map()이 최대값으로 설정된 width보다 더 큰 값을 d로 받았을 때, 그 값을 width로 조정하여 처리하는지….최대값 보다 큰 값을 제 1 parameter인 d로 받았을 때 map()이 어떻게 처리하는 방식을 몰라서… 함수 map()의 내부 코드 작업문을 들여다 볼 수 있으면 참 좋겠다 싶기도 해요…

화면 밖을 벗어난 로켓은 target으로부터 얼마나 멀리 떨어질 수 있는지 상상의 눈으로 어림잡아 보아 주실 수 있으셔요?

캔버스를 2배로 확장하고 로켓 출발점을 화면 가운데로 두어 보았습니다. )

그러면, this.fitness는~^^*

this.fitness = map( d, 0, width, width, 0);
//거리가 가장 가까운 로켓의 fitness 값은 width 즉 400
//거리가 가장 먼 로켓의 fitness 값은 0
//되겠네요~~^^*

함수 map()을 사용하면~^^* 로켓의 this.fitness 적합성 수치를 최고 400 최저 0 사이 구간으로 1차 normalize 정규화 작업을 해낼 수 있을 것 같아요~^^*

네~^^* 어제에 이어서 오늘도 로켓과 목표물 사이의 거리를 기반으로 로켓의 적합성을 도출해 내는 방법을 사고실험해 보았습니다.

오늘은 무한대값 발생을 처음부터 예방할 수있는 새로운 방식을 시도해 보았네요^^*

오늘 저와 함께 고민해 주셔서 감사합니다~^^*

내일 우리 또 만나서, 다음 작업들을 이어나가 볼까요~~^^*

어제의 고민이 오늘 해결되니, 2024와 2025가 이어져 있으면서도 더 나은 한 해를 시작한 기분이 들어서 감사한 마음이 들어요~~^^*

신의 은총을 온전히 받아 새로운 한 해를 씩씩하게 일구어 나가면 좋겠어요~~^^*

새해 복 많이 받으셔요~~^^*

오늘도 복된 하루 보내시기 바래요~~^^*

새해 복 많이 받으셔요~~^^*

우리 내일 또 만나요~~^^*

네~~!!! 꿈은 이루어 집니다~~!!!

댓글 남기기