2009-05-27 7 views
2

코딩 방법에 대해 머리를 감싸는 데 어려움이 있습니다. 도움을 주시면 감사하겠습니다.가장자리 투영 효과에 대한 안내

alt text http://agutie.homestead.com/FiLEs/triangle_square/triangle_square_03.gif

위의 사진은 내가 빠르게 검색 좀 뭔가이지만, 괜찮은 예를 보여줍니다. 사각형과 삼각형을 사용자가 움직일 수 있다고 상상해보십시오. 사용자가 ABC 삼각형의 "근처"에있는 BGFC 사각형을 드래그 앤 드롭하면, 사각형을 삼각형으로 정렬하여 사각형을 자동으로 스냅/움직이고 싶습니다. 꼭지점은 일치 할 필요가 없습니다. (그리고 너무 좋아지지 않으므로 너무 딱딱하지 않습니다.) 가장 가까운 꼭지점이 삼각형의 가장 가까운 꼭지점에 오도록 정사각형을 옮기고 싶습니다.

모든 좌표/정점/각도에 대한 액세스 권한이 주어지면이 스냅 투 에지 효과를 달성하는 데 알맞은 방법이 있습니까?

예를 들어 너무 복잡하다면 동일한 상황에서 모든 90도 각도의 두 개의 직사각형을 간단히 살펴볼 수 있습니까? 직사각형을 다른 직사각형 근처로 드래그하고 직사각형을 다른 직사각형의 가장자리에 자동으로 맞 춥니 다.

저는 수학적인 방법으로이 문제를 해결할 수 있다고 가정합니다. 올바른 방향으로 밀고 나가면 연구 해 드리겠습니다. 당신의 도움을 주셔서 감사합니다!

답변

3

alt text http://img529.imageshack.us/img529/7607/trianglesquare01.gif

첫번째 이미지는 삼각형과 사각형을 나타낸다. 삼각형의 한 변은 선 l (1)을 따르고 사각형의 변은 다른 선 l (2)을 따릅니다.

이제 선들 사이의 거리를 결정하고자합니다. 그것을 d라고 부르 자. 이 값은 정사각형을 이동해야하는지 여부를 결정합니다. 질문에서 언급했듯이 모든 좌표와 모든 각도를 알 수 있습니다. 즉, 선의 방정식도 알 수 있습니다.

d를 알고 있다고 가정합니다. 이제 우리는 변위 (dx, dy)를 계산하려고합니다. 다음 이미지는 첫 번째 이미지의 확대 부분을 보여줍니다.

alt text http://img529.imageshack.us/img529/161/trianglesquare02v.gif

우리는 삼각형의 각도 A는 우리가 알고 :

dx = d * sin a 
dy = d * cos a 

당신이 지금 알아야 할 것은,이 개 • 병렬 라인 사이의 거리 d를 계산하는 방법이다. 나는 이것을 당신을위한 운동으로 남겨 둡니다. 여기에 링크를 얻을 수있어 당신은 시작 :

The Perpendicular Distance between two Parallel Lines

잇 짜잔!

당신은 내 l337 포토샵하여 skillz 변명해야

편집

. 그러나 그들이 충분히 설명하기를 바랍니다.