2012-09-25 10 views
0

나는 ObjC다른 값

- (CLLocationCoordinate2D)middleOfPoints:(NSOrderedSet *)points 
{ 
    int i = 0; i = points.count; 
    double x,y,z = 0; 

    for (BuildingPoint *point in points) 
    { 
     // Iterate through Set 
     x += cos(point.latitude.doubleValue*(M_PI/180)) * cos(point.longitude.doubleValue*(M_PI/180)); 
     y += cos(point.latitude.doubleValue*(M_PI/180)) * sin(point.longitude.doubleValue*(M_PI/180)); 
     z += sin(point.latitude.doubleValue*(M_PI/180)); 
    } 

    x = x/i; 
    y = y/i; 
    z = z/i; 

    double longitude = 180/M_PI * atan2(y,x); 
    double t = sqrt(x * x + y * y); 
    double latitude = 180/M_PI * atan2(z,t); 

    return CLLocationCoordinate2DMake(latitude, longitude); 
} 

에 을 (경도, 위도에 의해 speicified) 여러 지리적 포인트의 중간을 계산할하지만이 메서드를 호출 할 때 어떤 이유로 나는 다른 값을 얻을 수 5 동일한 입력 집합을 가진 시간. 어떤 아이디어?

+0

내 대답을 확인할 기회가 있었습니까? 도움이된다면, 대답의 왼쪽에있는 체크 박스 개요를 클릭하여 "동의"하는 것을 잊지 마시기 바랍니다 (http://stackoverflow.com/faq#howtoask 참조). –

답변

0
double x,y,z = 0; 

z 제로이지만 xy 행 (랜덤) 값을 정의되지 않은 초기화한다. 변경하려면

double x = 0, y = 0, z = 0;