使用比例时计算距离公式

时间:2013-05-08 20:13:31

标签: ios objective-c math formula

我正在尝试根据用户绘制的比例来计算距离。

我的用户可以通过在网格上绘制一条线来捕捉游戏中的其他点。

  • 网格是一个数值,可以选择8,16,24或32。

  • 用户可以通过选择整数(1-10)和分数(0,0.5,0.75或0.125)来改变比例。

  • 用户可以选择以度量单位还是经验单位显示距离。

一旦比例改变,我很难吐出距离。

有人能告诉我数学中出错了吗?

- (double) distanceFormula : (float) x1 : (float) y1 : (float) x2 : (float) y2 {
    // 1 meter * 3.280839895 feet => feet
    // 1 foot * 1 meter/3.280839895 feet => meter

    /* Use Pythagora's theorem to calculate distance */
    double dx = (x2-x1);
    double dy = (y2-y1);
    double dist = sqrt(dx*dx + dy*dy);
    NSLog(@"Raw Distance %f", dist) ;
    return dist;
}


- (NSString *) returnDistanceAsString : (double) distance {

    NSString * string;
    double d = distance / [self returnGridSize];
    double scale = [self returnScaleWhole] + [self returnScaleSub];

    if ([self returnUseMetric]) {
        //METRIC
        int tempCentim  = (d * kCMConst) / 2;

        if  (tempCentim < 1) {
            string = [NSString stringWithFormat:@"%d mm", tempCentim];
        } else if (tempCentim > 1) {
            string = [NSString stringWithFormat:@"%d mm", tempCentim];
        } else if (tempCentim > 100) {
            //eventually going to add cm mm 
        }

    } else {
        //EMPERICAL
        int RL = d * scale;
        int feet = RL / 12.0;
        int inches = (int)RL % 12;
        string = [NSString stringWithFormat:@"%i' %i\"", feet, inches];
    }

    return string;
}

1 个答案:

答案 0 :(得分:0)

我注意到的主要问题是,在公制中,你忽略了按比例乘以,但是你乘以kCMConst / 2。你没有解释什么是kCMConst,但它似乎不太可能是一个需要除以2的值。