// here 에 있던 공이 dir 방향으로 굴러와 center 를 중심으로 하는 장애물에서// contact 위치에서 충돌했을 때 공의 새로운 방향을 반환한다vector2reflect(vector2here,vector2dir,vector2center,vector2contact){return(dir-dir.project(contact-center)*2).normalize();}
라고 되어있는데요
이게 어째서 반사벡터가 되는거죠 ㅡㅡ
설명에는 d'+d를 -d에 두번더하라고 되어있는데
그럼 -d+(d'+d)+(d'+d)=-d+2d'+2d=2d'+d 인데요..
함수안에서 dir이 d아닌가요? 그럼
dir.project(contact-center)*2 + dir 이 되어야하는것 아닌가요?
벡터 연산을 자주하다보면 원소들의 매우 값(amplitude)이 크거나 작아질 수 있는데, 나중에 수치적 안정성(numerical stability)이 떨어져서 계산 오차가 발생할 수 있습니다. 그래서 normalize를 하면 좋구요. 또한 값을 눈으로 보기도 편하고.. 등등 여러가지 이유가 있습니다 ~
cjkis
PINBALL문제 536페이지에
라고 되어있는데요
이게 어째서 반사벡터가 되는거죠 ㅡㅡ
설명에는 d'+d를 -d에 두번더하라고 되어있는데
그럼 -d+(d'+d)+(d'+d)=-d+2d'+2d=2d'+d 인데요..
함수안에서 dir이 d아닌가요? 그럼
dir.project(contact-center)*2 + dir 이 되어야하는것 아닌가요?
9년 전