2

도 교차하는 지점 찾기 : http://i.stack.imgur.com/gpL0P.png라인이 비선형 경로를

요약 : 어떻게 내가 그 옆에있는 붉은 점의 위치를 ​​계산하고 그릴 수있는 그림의 파란색 점의 좌표를 찾을 수 있습니까를 내 삼각형?

세부 정보 : 나는 만들고있는지도 응용 프로그램에 대해 드래그 가능한 툴팁 풍선을 사용하여 꼬리를 만들고 있습니다. 풍선이 배치 된 위치 (풍선과 꼬리를 모두 포함하는 스프라이트의 0,0 점)에서 풍선의 가장자리까지 꼬리를 그릴 수 있습니다. 꼬리의 기저부는 항상 동일한 임의의 너비입니다 너비가 풍선에 연결됩니다. 꼬리는 매 프레임마다 새 좌표에서 다시 그려집니다.

풍선에 꼬리 부분을 숨기지 않으려합니다. 투명도를 사용하려고합니다.

경로가 원이나 타원 인 경우 greensock의 모션 경로 라이브러리 인 CirclePath2D 클래스의 angleToProgress 메소드 (일부 trig와 함께)를 사용하여 숨겨진 경로 팔로어를 배치하고 xy를 얻을 수 있습니다 ... 그러나 roundedRectangle을 사용하고 있습니다 ... 그래서 더 좋은 방법은 선과 풍선 경계선을 가로 지르는 경로를 가로 지르는 어떤 종류의 충돌 감지가 될 것이라고 생각했습니다. 그러나 충돌의 xy를 반환하는 충돌 함수를 찾을 수 없습니다.

그래서 나는 혼란 스럽습니다. AS3에서 내장 된 충돌 메서드를 사용하여 쉽게 수행 할 수 없을 수도 있습니다. 이 작업을 수행 할 수있는 충돌 라이브러리가 있습니까? 아니면 아마도 바람직하지 않은 일부 수학 문제가 있습니까? 내가 이것을 생각하는 것 같아서 그렇게 힘들어서는 안된다.

[참고 :. 내가 충분히 명성을 가지고 있지 않기 때문에 나는 그림을 삽입 할 수 없습니다] 블루 교차점이 둥근 모서리 중 하나에있는 경우 당신이 할 무슨 말을하는 건가요

+0

왜 삼각형을 중심점까지 전부 그려야하고 삼각형의 마스크로 사용할 동일한 치수의 둥근 사각형을 그리는 것이 좋을까요? –

+0

나는 실제로 벌써이 일을하고있다. 나는 그것을 마스킹하는 것을 고려해 왔지만 그것을 피하고 싶었습니다. 여기에서 배울 것이 있다는 느낌을 떨칠 수 없기 때문에. – Xerain

+0

수학 경로를 나가면 많은 삼각 관계가 있습니다. 직사각형과 모퉁이의 원을 볼 수있는 2 가지 항목이 있습니다. 직사각형의 높이와 너비 및 모서리의 반경을 알고 있으면 필요한 모든 점을 계산할 수 있어야합니다. 그러나 반올림 문제가 발생하여 픽셀이 완벽 해지지 않을 수도 있습니다. 때로는 1 픽셀의 겹침 또는 갭이있을 수 있습니다. –

답변

1

? 그 외에도 쉽게 이해할 수 있어야합니다 - 선 경계와 상자 경계를 만드는 네 개의 무한 선과 선이 교차하는 지점을 확인하고 실제로 피타고라스와 첫 번째 교차점을 확인하는 간단한 선 기하학 및 본드 확인을 수행 할 수 있습니다 선 길이.

이 방법을 사용하는 경우 분명히 잘못된 (때때로 존재하지 않는) 교차점 계산을 건너 뛰려면 풍선 끝을 기준으로 배치 위치를 확인해야합니다 (예 : 풍선 중심이 직접 배치 점의 서쪽에서 수직선의 교차점 계산을 건너 뜁니다. 실제로 유사한 논리를 사용하여 형상에 따라 2 또는 3면을 건너 뛸 수 있습니다.

+0

여기에서 코너 케이스 (하)에 대해 생각해 보면, 가상 원형이 아닌 상자에 대해 위에서 설명한 것처럼 할 수 있습니다. 교차점이 모퉁이에서 반올림 반경 이내에 있으면 어쩌면 그냥 간단한 사전 결정된 위치. 그것이 효과가있는 것처럼 보입니다. – lxop

+0

나는 내일 당신이 제안하는 이론을 조사하는데 약간의 시간을 할애해야 할 것입니다. 모서리의 경우 경계에 점을 추가하고 주변을 따라 주변을 따라 점을 이동합니다. greensock의 MotionPath 클래스와 PathFollowers를 사용하여이 작업을 수행 할 수 있습니다. 그런 다음 해당 점의 xy 값을 가져옵니다. 실제로 스프라이트로 참조 할 수 있습니다. 그런 다음이 값을 사용하여 삼각형을 그립니다. – Xerain

+0

나는 그것이 무슨 뜻인지 이해하지 못합니다. 나는 거품의 중심과 배치 점 사이의 선이 모서리의 직선 부분보다는 둥근 모서리를 교차하면 동작이 약간 달라진다는 것을 의미했습니다. – lxop