2012-02-03 2 views
1

내 앱에서 축구 필드의 세 모퉁이를 정의 할 수 있습니다. iPhone의 GPS를 사용하고 모서리를 따라 하나씩 이동하고 버튼을 탭합니다. 이 방법은 잘 작동하며, Google지도와 같이 화면에 결과로 나타나는 직사각형을 그릴 수 있습니다.수학 (기하학) : 직사각형 투영?

그래서 축구장의 3 개의 임의의 모퉁이에 대해 위도와 경도로지도를 조정했습니다.

사용자가 시작하는 구석이나 시계 반대 방향으로 시계 반대 방향으로 연속 모서리를 입력하지 않았습니까?

내가 원하는 것은 축구 필드를 나타내는 iPhone의 전체 화면이며, GPS 위치가 화면에서 추적 될 수 있습니다.

그래서 올바른 방향을 계산하여 화면에 잘 맞게하고, 축을 반전하지 않도록하고, 들어오는 GPS 좌표를 화면의 좌표계로 회전하고 크기를 조정해야합니다.

어떻게 하시겠습니까? 필자는 실제 코드가 필요 없으며이를 달성하기위한 가장 간단한 알고리즘/전략으로 생각할 것입니다.

나는 투영, 회전 등의 기사를 이미 공부했으며, 많은 시행 착오로이 문제를 파악할 수 있다고 생각하지만,이 작업을 수행하는 가장 간단한 방법을 알고 싶습니다. 어쩌면 iOS에는 내가 인식하지 못하는 몇 가지 기능이 있습니다.

+0

아직 작업 중이십니까? 그렇다면 작은 지역 (예 : 고등학교 팀), 넓은 지역 (미국 전체, 대학 또는 NFL 팀)과 같은 축구 분야를 다루고 있습니까? – GeneralMike

답변

0

곧 문제를 설명해 주시겠습니까? 먼저 무엇이 입력인지 (나는 잡히지 않았다). 세 개의 점과 다른 점은 무엇입니까? 4 숫자.

좌표를 하나만 가져 와서 계산할 수 있다면 왜 필요합니까?

+0

입력은 두 개의 부동 소수점 값 _GPSx_ 및 _GPSy_ (현재 GPS 위치)입니다. 실제 축구 필드의 기록 된 세 모서리의 GPS 위치를 나타내는 부동 소수점 값 c1x, c1y, c2x, c2y, c3x, c3y도 사용할 수 있습니다. –

+0

36 * n 포인트에서 360 도의 사진지도를 만들 수 있으며 각도를 얻을 수 있습니다 (원 중심의 중심, 중심은 필드 중심 임). 그것을 위해서 당신은 필요합니다. 1. 0도 지점을 설정하십시오. 2. 각도를 계산하십시오. 3.이 좌표에 따라 pict를 선택하십시오. – Spirit

+0

죄송합니다. 제 질문에 대해 오해하신 것 같습니다. 사용자가 실제로 축구장에있는 지점과 일치하는 화면에 마크 만 표시하면됩니다. –

0

만큼 모서리가 연속 위해 방문하는대로 다음과 같이 사각형을 계산할 수 있습니다 (CW 또는 CCW는 무관하다) :

코너 (P)가, Q, 및 R이 위해 방문하는 경우, 다음 코너의 =을 P + R - Q

0

좌표가도 - 분 - 초로 온다면 내가 먼저 진수로 변환해야합니다,

... 아무것도 아직 수락되지 않았기 때문에이 늦은 대답이지만, 알고 도. 그런 다음 입력 중 하나를 선택하십시오. 해당 점과 다른 점 사이의 거리를 찾습니다 (D = sqrt ((lat1-lat2)^2 + (long1-long2)^2)). 각 거리는 너비 (골 라인을 따라, 예를 들어 최단 거리), 길이 (사이드 라인 따라) 또는 대각선 (엔드 존의 한 뒤 모서리에서 반대편 모서리까지 - 세 가지 값 중 하나입니다. 가장 긴 거리). 저는이 거리가 십진수로 어떻게 될지 모르겠습니다 - 지구의 아주 작은 부분을 다루고 있다고 가정 할 때, 그것은 일정 할 것입니다. 그래서 최선의 방법은 아마도 현지 필드로 나가 그들을 측정 할 것입니다. 당신 자신. 지구의 대부분을 다루는 경우, 위도 - 긴도를 피트로 변환해야합니다. 이로 인해 물건이 너무 추해 지지만, 끝낼 수 있습니다 (누군가 내가 편집에 해당 부분을 추가 할 것을 요청하면) . 일단 시작한 코너와 다른 2 코너가 무엇인지 알게되면 누락 된 거리와 누락 된 코너를 파악할 수 있습니다. 위의 알려진 거리 중 하나에 (lat1-lat2)/(long1-long2) 비율을 사용하여 필드의 방향을 파악할 수 있습니다. 이 비율을 얻었고 누락 된 거리를 알게되면 2 개의 방정식과 2 개의 미지수가 있습니다 - 동시에 해결하고 4 번째 코너의 좌표를가집니다.

자세한 단계가 필요한 경우 의견을 추가하십시오. & 정보.