<div><br></div> <div>양 끝점을 충돌에 포함하지 않는 직선의 교차<span style="font-size:9pt;line-height:1.5;"> 판정식: (AC X AB) ·(AB X AD) > 0 && (CA X CD) ·(CD X CB) > 0</span></div> <div> <div><br></div> <div><span style="font-size:9pt;line-height:1.5;">예외 상황: A B C D 네점이 같은 직선위에 있는 경우 판별식 </span><span style="font-size:9pt;line-height:1.5;">AB X CD =0 && AC X CD = 0</span></div> <div>이 경우 <span style="font-size:9pt;line-height:1.5;"> CA ·DA <0 ||</span><span class="Apple-tab-span" style="font-size:9pt;line-height:1.5;white-space:pre;"> </span><span style="font-size:9pt;line-height:1.5;">CB ·DB <0 || AC ·BC <0 || AD ·BD <0 이면 교차 판정</span></div> <div><br></div></div> <div><br></div> <div><span style="font-size:9pt;line-height:1.5;">첨부된 파일의 Main.cpp 보면 </span><span style="font-size:9pt;line-height:1.5;">int CollisionLineToLine(const D3DXVECTOR2* v1, const D3DXVECTOR2* v2) 함수가 있습니다. 이 함수가 교차 판정해주는 함수네요.</span></div> <div><br></div> <div><br></div> <div>72라인에 테스트용 위치가 있는데 [0]: 직선의 시작위치 [2]: 직선의 방향 벡터, [1]: 두 번째 좌표 입니다.</div> <div><br></div> <div>// Line 1</div> <div>m_pLine1[0] = D3DXVECTOR2(50, 90);</div> <div>m_pLine1[2] = D3DXVECTOR2(1,1.3F) * 150;</div> <div>m_pLine1[1] = m_pLine1[0] + m_pLine1[2];</div> <div><br></div> <div>// Line 2</div> <div>m_pLine2[0] = m_pLine1[1] - m_pLine1[2]*0.1F;</div> <div>m_pLine2[2] = D3DXVECTOR2(1, -1.1F) * 200;</div> <div>m_pLine2[1] = m_pLine2[0] + m_pLine2[2];</div> <div><br></div> <div>LEFT, RIGHT, UP, DOWN을 하면 직선이 움직이고 충돌하면 윈도우 타이틀에 충돌 메시지가 출력 되네요.</div> <div><br></div> <div>빌드는 vc2008 , directSDK 2010 9.0C</div> <div><br></div> <div><br></div> <div><a target="_blank" href="http://3dapi.com/bs12_2d_app/Sp32_Coll_line.zip" target="_blank" style="font-size:9pt;line-height:1.5;">http://3dapi.com/bs12_2d_app/Sp32_Coll_line.zip</a></div> <div><br></div> <div>zip안에 exe 파일이 있네요. </div> <div><br></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.