Skip to content

기글하드웨어기글하드웨어

가전 / 가젯 / 테크 : 가전 제품, 멀티미디어, 각종 IT 기기와 여기에 관련된 기술의 이야기, 소식, 테스트, 정보를 올리는 게시판입니다.

Extra Form

구 충돌 검사.PNG

다름아닌 다음과 같은 코드를 해석하는데 마지막에 저 값을 알수가 없어서 질문에 올리게 됬네요

프로그래밍을 하지 않는분들을 위해 설명을 추가해 보겠습니다.

현재 이 코드는 3차원에서 광선과 구가 충돌하는지 확인하는 코드입니다.

 

기타 부분

m_vDirection은 광선의 방향벡터 입니다.

m_vOriginal은 광선의 출발점 (x,y,z) 벡터입니다

추가 )) 방향벡터는 항상 정규화(Normalize) 되어있습니다.

 

수학적인 부분 

vv는 방향벡터와 방향벡터를 내적한 값입니다.

qv는 출발지점과 방향벡터를 내적한 값입니다.

qq는 출발지점과 출발지점을 내적한 값입니다.

rr은 충돌대상인 구의 반지름 값 * 반지름 값입니다.

 

밑의 qv * qv - vv * (qq - rr)이 어떤 원리인지 잘 모르겠네요

마지막 값이 0이면 한점과 충돌 , 0보다 크다면 2점이 충돌, 0보다 작다면 충돌하지 않는거로 알고있습니다

고수님들의 설명 부탁드립니다...



  • ?
    wwsun98 2017.05.18 23:11
    저걸 해석하기 보다는 저걸 직접 뽑아내는쪽이 나을것 같네요.
    펜대굴리고 있으니 잠시만...
  • profile
    노력 2017.05.18 23:13
    뽑으면 0보다 큰지 안큰지 여부 (충돌했는지 안했는지 여부)만 나와서
    어떤 원리로 충돌을 검사하는건지 잘 모르겠네요 ㅜㅜ..
  • ?
    wwsun98 2017.05.18 23:44
    평면이라고 생각하시고
    종이에 원을 그리고 출발점 찍으세요. 그리고 그쪽으로 원점에서부터 선을 그어요 (q)
    출발점에서 원에 접하는 직선을 그으세요. (v)
    그리고 원과 직선의 접점에서 원점으로 선을 그으면 직각삼각형이 나와요.
    내적을 이용해 벡터 q와 v의 각도에 해당하는 코사인값을 알수 있어요. 다만 쓰기전에 -1 곱해줘야되요.
    그리고 q의 크기와 코사인 값을 곱한걸 v의 크기로 나누면 v의 '적절한' 실수배가 나와요. 실수배를 t로 하죠.
    광선이 원에 접할경우 q+vt의 크기는 원의 반지름만큼 나와요.
    광선이 원을 관통하면 반지름보다 작아지고요.
    (q+vt)^2<=r^2 을 만족하면 광선은 구와 만나거나 접해요.
    t값, 코사인값 둘다 벡터 v,t로 이뤄진 식으로 나타내서 저기에 대입하고 정리하면 저렇게 되요.
    저 리턴값에선 여기에 -1을 곱해서 부등호가 반대에요.
    무엇보다 계산과정은 진짜 드러운데 결과는 수능문제보다 깔끔하게 떨어져서 놀라워요....
  • ?
    wwsun98 2017.05.18 23:58
    저걸 사용할때 구의 중심이 원점에 오도록 출발점과 구를 같이 평행이동 해줘야 되요. 그렇게 안하고 식을 짜보면 ....



    그 샷건 거꾸로 든 개구리짤이 생각나게 되죠.
  • profile
    노력 2017.05.19 00:23
    와 진짜 진짜 정말로 감사합니다 ...
    구글에서 엄청 찾고 영어로도 찾아보고 그랬었는데
    수식에 대한 내용을 드디어 알게됬네요
    제가 한번더 내용에 대해서 정리한뒤 블로그에 저장해 놔야겠네요
    좋은내용 정말 감사합니다 공책에 그리면서 이해했네요
  • ?
    마왕 2017.06.01 12:27
    레이 트레이싱 같은 거 하시나보네요~
  • profile
    노력 2017.06.02 18:50
    마우스 피킹 구현해 보고 있었습니다 :D
    광선을 이리저리 막 변환해야 해서 복잡했네요

작성된지 4주일이 지난 글에는 새 코멘트를 달 수 없습니다.


  1. 등록된 글이 없습니다.
목록
Board Pagination Prev 1 ... 37 38 39 40 41 42 43 44 45 46 Next
/ 46

최근 코멘트 30개
MUGEN
08:33
Pineapple
08:31
Yukirena
08:24
캐츄미
08:22
니코다이스키
07:51
마라톤
07:49
마라톤
07:48
유지니1203
07:43
아라
07:41
마초코
07:17
리키메
06:48
미쿠미쿠
06:46
dmy01
06:35
아라
06:24
포인트 팡팡!
05:22
라데니안
05:22
카에데
05:19
카에데
05:08
카에데
04:54
카에데
04:48
카에데
04:41
빈도
04:40
카에데
04:36
빈도
04:35
카에데
04:34
빈도
04:26
카에데
03:56
열라끔찍한놈
03:34
리나인버스
03:09
파란화면
03:05

AMD
더함
한미마이크로닉스
MSI 코리아

공지사항        사이트 약관        개인정보취급방침       신고와 건의


기글하드웨어는 2006년 6월 28일에 개설된 컴퓨터, 하드웨어, 모바일, 스마트폰, 게임, 소프트웨어, 디지털 카메라 관련 뉴스와 정보, 사용기를 공유하는 커뮤니티 사이트입니다.
개인 정보 보호, 개인 및 단체의 권리 침해, 사이트 운영, 관리, 제휴와 광고 관련 문의는 이메일로 보내주세요. 관리자 이메일

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소