首页 文章

从圆弧区域中寻找中心角

提问于
浏览
2

我试图根据2个百分比将一个圆分成2个部分 . 像饼图一样,但创建具有单个垂直切片的片段 . 我已经找到了这个区域的公式,但是当我知道半径和面积时,我们无法解决C(中心角):

(R(平方)/ 2)(((pi / 180) C) - sin(C))

一旦我得到C,我可以使用cos,tan和R(半径)来找到圆上的x和y点 .

起初我以为我可以简单地乘以180 *(smallPercent / 50),但我意识到这是'不' .

2 回答

  • 0

    这是牛顿方法的一个很好的应用 . 可以轻松修改以下C程序以解决问题 . 您可以将其更改为以圆的面积百分比计算所需面积,或单独计算所需面积并输入 .

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    double chordangle(double r,double a)
    {
      double x = a/2.0;
      do{
        x = ((x * r * r / M_PI) - (sin(x) * r * r / 2.0) - a ) / 
          (r * r / M_PI - (r * r / 2.0) * cos(x));
      }while(((x * r * r / M_PI) - (sin(x) * r * r / 2.0 ) - a) > 1e-11);
      return x;
    }
    
    int main()
    {
      double a,r;
      printf("Enter radius: ");
      if(scanf("%lf",&r)!=1)
        {
      printf("You must enter a number.\n");
      exit(1);
        }
      printf("Enter desired area of slice: ");
      if(scanf("%lf",&a)!=1)
        {
          printf("You must enter a number.\n");
          exit(1);
        }
      printf("The angle in radians is %lf.\n",chordangle(r,a));
      printf("The angle in degrees is %lf.\n",chordangle(r,a)*180.0/M_PI);      
      return 0;
    }
    
  • 1

    我已经更新了这个答案(原文是在最底层) .

    您已经知道圆的半径,它的面积(PI * r平方)和您要构建的线段的面积(smallerPercentage / 100 * areaOfCircle) .

    如果我正确理解了问题,则没有公式可以计算出创建给定区域和半径的段所需的角度 .

    enter image description here

    然而,一切都不会丢失 .

    如果您知道角度,您也可以使用已有的公式计算出该区域 . A = 0.5 * r的平方*(((PI / 180)*Θ) - sin(Θ))其中θ是角度 .

    因此,唯一的解决方案是开始在Θ处进行有条理的猜测,看看计算出的面积是否与您期望的一致(在一定的公差范围内) .

    并且假设百分比小于50(并且大于0)则:0 <角度<180 .

    所以,我会在90度时做出我的第一次猜测 . 如果该区域在45处再次猜测太大,则尝试135.每次将大小减半并从前一个角度加上或减去它 . 继续缩小范围,直到得到的区域在您所期望的区域范围内 . 不到10个猜测应该会让你到那里 .

    我认为这叫做"1/4 Tank dipstick problem":见:http://mathforum.org/library/drmath/view/61752.html

    我希望这有帮助 .


    这是我原来的答案,在我正确理解你要做的事情之前:

    我不确定我是否完全理解你想要达到的目标,但是你可以像这样计算你想要的角度(以度为单位):

    smallAngle = 360/100 * smallerPercentage;
    largeAngle = 360 - smallAngle;
    

    并且您总是可以将度数乘以(PI / 180)以获得弧度 .

相关问题