精华内容
下载资源
问答
  • 2022-03-11 08:19:11

    用C语言编程:求圆形的面积已知圆的半径

            圆的一般方程半径为:r=√(D²+E²-4F)/2。利用圆的周长公式求半径,r=C/2π。利用圆的面积公式求半径,r=√(S/π)。在同一平面内,到定点的距离等于定长的点的集合叫做圆。圆可以表示为集合{M||MO|=r},圆的标准方程是(x-a)²+(y-b)²=r²。

    复习一下有关圆的计算公式

            1.圆的周长C=2πr=πd

            2.圆的面积S=πr²;

            3.扇形弧长l=nπr/180

            4.扇形面积S=nπr²;360=rl/2

            5.圆锥侧面积S=πrl

    #include
    
    #define pi 3.1416
    
    int main()
    
    {
    
    int a,b;
    
    printf("题目:求圆形的面积\n\n\n圆的半径:\n");
    
    scanf("%d",&a);
    
    float area;
    
    area=pi*a*a;
    
    printf("面积为:%f\n",area);
    
        return 0;
    
    }
    
    

    更多相关内容
  • 格林公式求圆并的面积及重心

    千次阅读 2022-04-12 19:05:26
    ICPC格林公式计算并的面积与重心

    格林公式

    首先写下格林公式,省略了公式成立的条件。

    ∬ D ( ∂ Q ∂ x − ∂ P ∂ y ) d x d y = ∮ P d x + Q d y \iint_D\big(\frac{\partial{Q}}{\partial{x}}-\frac{\partial{P}}{\partial{y}}\big)dxdy=\oint{Pdx+Qdy} D(xQyP)dxdy=Pdx+Qdy

    其中 D D D是一个面, L L L是其边缘曲线。借助格林公式可以将面积分转换为一维的路径积分。 P P P Q Q Q是关于 x , y x,y x,y的二元函数。

    格林公式对面积及重心的推导

    考虑面积公式: s = ∬ D d x d y s=\iint_D{dxdy} s=Ddxdy,套用格林公式,令 Q = x , P = − y Q=x,P=-y Q=x,P=y,则有

    s = ∬ D d x d y = 1 2 ∬ D ( ∂ Q ∂ x − ∂ P ∂ y ) d x d y = 1 2 ∮ x d y − y d x s=\iint_D{dxdy}=\frac{1}{2}\iint_D\big(\frac{\partial{Q}}{\partial{x}}-\frac{\partial{P}}{\partial{y}}\big)dxdy=\frac{1}{2}\oint{xdy-ydx} s=Ddxdy=21D(xQyP)dxdy=21xdyydx

    考虑重心坐标的公式,分别有

    x g = ∬ D x d x d y ∬ D d x d y , y g = ∬ D y d x d y ∬ D d x d y x_g=\frac{\iint_D{xdxdy}}{\iint_Ddxdy}, y_g=\frac{\iint_D{ydxdy}}{\iint_Ddxdy} xg=DdxdyDxdxdy,yg=DdxdyDydxdy

    为了方便起见,将分子分别记作 z x , z y z_x,z_y zx,zy。首先考虑 z x z_x zx,令 Q = 1 2 x 2 , P = 0 Q=\frac{1}{2}x^2,P=0 Q=21x2,P=0,则

    z x = ∬ D ( ∂ Q ∂ x − ∂ P ∂ y ) d x d y = ∬ D x d x d y = ∮ C 1 2 x 2 d y z_x=\iint_D\big(\frac{\partial{Q}}{\partial{x}}-\frac{\partial{P}}{\partial{y}}\big)dxdy = \iint_D{xdxdy} = \oint_C{\frac{1}{2}x^2}dy zx=D(xQyP)dxdy=Dxdxdy=C21x2dy

    同理可得:

    z y = − 1 2 ∮ C y 2 d x z_y=-{\frac{1}{2}}\oint_C{y^2dx} zy=21Cy2dx

    圆并的面积与重心计算

    显然圆并的边界均是圆弧,因此可以描述为:

    { x = x 0 + r c o s θ y = y 0 + r s i n θ   α ≤ θ ≤ β \left\{ \begin{aligned} x & = x_0+rcos\theta \\ y & = y_0 + rsin\theta \end{aligned} \right. \, {\rm}{\rm} \alpha\le\theta\le\beta {xy=x0+rcosθ=y0+rsinθαθβ

    分别代入上述公式,可以求得:

    s = ∮ C x d y − y d x = ∮ C ( x 0 + r c o s θ ) d ( y 0 + r s i n θ ) − ( y 0 + r s i n θ ) d ( x 0 + r c o s θ ) = ∮ C r x 0 d s i n θ + r 2 c o s 2 θ d θ − r y 0 d c o s θ + r 2 s i n 2 θ d θ = r ( x 0 s i n θ − y 0 c o s θ + r θ ) ∣ α β s=\oint_C{xdy-ydx}=\oint_C{(x_0+rcos\theta)d(y_0+rsin\theta)}-(y_0+rsin\theta)d(x_0+rcos\theta) \\ = \oint_C{rx_0dsin\theta+r^2cos^2{\theta}d\theta-ry_0dcos\theta+r^2sin^2{\theta}d\theta} \\ = r(x_0sin\theta-y_0cos\theta+r\theta)|_\alpha^\beta s=Cxdyydx=C(x0+rcosθ)d(y0+rsinθ)(y0+rsinθ)d(x0+rcosθ)=Crx0dsinθ+r2cos2θdθry0dcosθ+r2sin2θdθ=r(x0sinθy0cosθ+rθ)αβ

    z x = ∮ C 1 2 x 2 d y = 1 2 ∮ C ( x 0 2 + 2 r x 0 c o s θ + r 2 c o s 2 θ ) d ( y 0 + r s i n θ ) = r 2 ∮ C x 0 2 d s i n θ + 2 r x 0 c o s 2 θ d θ + r 2 c o s 3 θ d θ = r 2 ( ( x 0 2 + r 2 ) s i n θ + r x 0 θ + r x 0 s i n 2 θ 2 − r 2 s i n 3 θ 3 ) ∣ α β z_x = \oint_C{\frac{1}{2}x^2}dy = \frac{1}{2}\oint_C{(x_0^2+2rx_0cos\theta+r^2cos^2\theta)d(y_0 + rsin\theta)} \\ = \frac{r}{2}\oint_C{x_0^2dsin\theta+2rx_0cos^2{\theta}d\theta+r^2cos^3{\theta}d\theta} \\ =\frac{r}{2}\big((x_0^2+r^2)sin\theta+rx_0\theta+\frac{rx_0sin2{\theta}}{2}-\frac{r^2sin^3\theta}{3}\big)|_\alpha^\beta zx=C21x2dy=21C(x02+2rx0cosθ+r2cos2θ)d(y0+rsinθ)=2rCx02dsinθ+2rx0cos2θdθ+r2cos3θdθ=2r((x02+r2)sinθ+rx0θ+2rx0sin2θ3r2sin3θ)αβ

    z y = − 1 2 ∮ C y 2 d x = − 1 2 ∮ C ( y 0 2 + 2 r y 0 s i n θ + r 2 s i n 2 θ ) d ( r c o s θ ) = − r 2 ∮ C y 0 2 d c o s θ + r y 0 2 d s i n 2 θ − r y 0 d θ + r 2 d c o s θ − r 2 3 d c o s 3 θ = r 2 ( r 2 c o s 3 θ 3 + r y 0 θ − ( r 2 + y 0 2 ) c o s θ − r y 0 s i n 2 θ 2 ) ∣ α β z_y=-{\frac{1}{2}}\oint_C{y^2dx}=-{\frac{1}{2}}\oint_C{(y_0^2+2ry_0sin\theta+r^2sin^2\theta)d(rcos\theta)} \\ = -{\frac{r}{2}}\oint_C{y_0^2dcos\theta+\frac{ry_0}{2}dsin2\theta-ry_0d\theta+r^2dcos\theta-\frac{r^2}{3}dcos^3\theta} \\ =\frac{r}{2}\big(\frac{r^2cos^3\theta}{3}+ry_0\theta-(r^2+y_0^2)cos\theta-\frac{ry_0sin2\theta}{2}\big)|_\alpha^\beta zy=21Cy2dx=21C(y02+2ry0sinθ+r2sin2θ)d(rcosθ)=2rCy02dcosθ+2ry0dsin2θry0dθ+r2dcosθ3r2dcos3θ=2r(3r2cos3θ+ry0θ(r2+y02)cosθ2ry0sin2θ)αβ

    所以只需求出圆并的每一段边界圆弧,计算即可。

    SPOJ CIRU圆并的面积

    最多有1000个圆,求并的面积。被覆盖的圆要剔除,不能参与运算。退化的圆也可以剃掉。简单而言就是对每一个圆,求其他圆覆盖该圆的圆弧角度区间 [ α , β ] [\alpha, \beta] [α,β],最多有 N − 1 N-1 N1段区间,然后对这些区间排序,对不在这些区间范围内的区间引用上述公式进行计算即可。时间复杂度为 O ( N 2 l o g N ) O(N^2logN) O(N2logN)

    #include <bits/stdc++.h>
    using namespace std;
    
    char *__abc147, *__xyz258, __ma369[100000];
    #define __hv007() ((__abc147==__xyz258) && (__xyz258=(__abc147=__ma369)+fread(__ma369,1,100000,stdin),__abc147==__xyz258) ? EOF : *__abc147++)
    
    int getInt(){
    	int sgn = 1;
    	char ch = __hv007();
    	while( ch != '-' && ( ch < '0' || ch > '9' ) ) ch = __hv007();
    	if ( '-' == ch ) {sgn = 0;ch=__hv007();}
    
    	int ret = (int)(ch-'0');
    	while( '0' <= (ch=__hv007()) && ch <= '9' ) ret = ret * 10 + (int)(ch-'0');
    	return sgn ? ret : -ret;
    }
    
    #ifndef ONLINE_JUDGE
    int const SIZE = 7;
    #else
    int const SIZE = 2010;
    #endif
    
    using Real = double;
    using vi = vector<int>;
    using vvi = vector<vi>;
    using pii = pair<Real, Real>;
    using vpii = vector<pii>;
    
    Real const EPS = 1E-8;
    Real const PI = acos(-1.0);
    inline int sgn(Real x){return x>EPS?1:(x<-EPS?-1:0);}
    inline bool is0(Real x){return 0 == sgn(x);} 
    inline Real myacos(Real x){
        if(x > 1) x = 1.0;
        if(x < -1) x = -1.0;
        return acos(x);
    }
    
    struct Point{
        Real x, y;
        Real dist(const Point &b)const{
            Real u = x - b.x, v = y - b.y;
            return sqrt(u*u+v*v);
        }
    };
    
    struct Circle{
        Point center;
        Real radius;
        /// 两个圆相交,返回圆弧角度的区间,可能是一段,也可能是两段
        /// 角度范围为[-Pi, Pi)
        vpii inter(const Circle &b)const{
            Real d123 = center.dist(b.center);
            Real u111 = fabs(radius - b.radius);
            Real u222 = radius + b.radius;
            assert(sgn(u222-d123) > 0 && sgn(d123 - u111) > 0);
    
            Real cosvalue = (radius * radius + d123 * d123 - b.radius * b.radius) / (2.0 * radius * d123);
            Real jiao = myacos(cosvalue);
            Real anchor = atan2(b.center.y - center.y, b.center.x - center.x);
            Real from = anchor - jiao, to = anchor + jiao;
    
            vpii ans;
            if(sgn(to - PI) >= 0){ // 分两段
                ans.emplace_back(-PI, to-PI-PI);
                ans.emplace_back(from, PI);
                return ans;
            }
            if(sgn(from+PI) < 0){ // 分两段
                ans.emplace_back(-PI, to);
                ans.emplace_back(from+PI+PI, PI);
                return ans;
            }
            ans.emplace_back(from, to);
            return ans;
        }
    };
    
    Real cross(const Point &O, const Point &A, const Point &B){
        Real xoa = A.x - O.x, yoa = A.y - O.y;
        Real xob = B.x - O.x, yob = B.y - O.y;
        return xoa * yob - xob * yoa;
    }
    
    /// 原函数求差值
    inline Real diff(Real (*f)(const Circle&, Real), const Circle&c, Real alpha, Real beta){
        return  f(c, beta) - f(c, alpha); 
    }
    
    /// 求面积的函数,缺一个0.5的因子
    Real f(const Circle &c, Real theta){
        return c.radius * (c.radius * theta + c.center.x * sin(theta) - c.center.y * cos(theta));
    }
    
    /// 求圆并,索引从0开始
    Real unite_circles(const Circle c[], int n){
        /// 首先求各圆相交的情况
        vvi status(n, vi());
        vi han(n, 0);
        for(int i=0;i<n;++i){
            if(han[i]) continue; // i被包含
            auto ci = c + i;
            if(is0(ci->radius)){
                han[i] = 1; continue;
            }
    
            for(int j=i+1;j<n;++j){
                auto cj = c + j;
                if(is0(cj->radius)){
                    han[j] = 1; continue;
                }
                Real u = ci->center.dist(cj->center);
                Real v1 = fabs(ci->radius - cj->radius);
                Real v2 = ci->radius + cj->radius;
                if(sgn(v1-u) >= 0){ // 包含
                    if(sgn(ci->radius - cj->radius) >= 0){
                        han[j] = 1; // j被包含
                    }else{
                        han[i] = 1; // i被j包含,i就不用再算了
                        break;
                    }
                }else if(sgn(v2-u) > 0){ // 相交
                    status[i].push_back(j);
                    status[j].push_back(i);
                }
            }        
        }
        /// 处理每个圆
        Real ans = 0;
        vpii vec;
        for(int i=0;i<n;++i){
            if(han[i]) continue; // 说明是被包含的
            const Circle * ci = c + i;
            const vi & st = status[i];
            if(st.empty()){ // 说明整个圆都是边界
                ans += diff(f, *ci, -PI, PI);
                continue;
            }
            vec.clear(); 
            vec.reserve(st.size());
            /// 对每个相交的圆求相交区间
            for(int j: st){
                auto tmp = ci->inter(c[j]);
                vec.insert(vec.end(), tmp.begin(), tmp.end());
            }
            /// 相交区间排序
            sort(vec.begin(), vec.end());
            /// 对每一段露在外面的圆弧做积分
            Real left = -PI;
            for(const auto &p: vec){
                if(left < p.first){ // 说明有一段边缘
                    ans += diff(f, *ci, left, p.first);  
                    left = p.second;
                }else if(left < p.second){ // 更新边界的起点
                    left = p.second;
                }
            }
            /// 最后再加上一段,无论有没有
            ans += diff(f, *ci, left, PI);
        }
        return 0.5 * ans; // 最后乘0.5
    }
    
    int N;
    Circle C[SIZE];
    
    Real proc(){
        Real ans = unite_circles(C, N);
        return ans;
    }
    
    int main(){
    #ifndef ONLINE_JUDGE
        freopen("1.txt", "r", stdin);
    #endif
        N = getInt();
        for(int i=0;i<N;++i) C[i].center.x = getInt(), C[i].center.y = getInt(), C[i].radius = getInt();
        printf("%.3f\n", proc());
        return 0;
    }
    

    圆并的重心

    Battle Mage,题目大意是:给定一个凸多边形形状的薄木板,上面有很多圆洞,圆洞可能会重叠。薄木板初始位于竖直平面内,给定每个点的坐标,给定圆洞的圆心和半径。现在将薄木板的第V个点固定住,然后让其在重力作用下达到平衡位置,问此时凸多边形的N个顶点的坐标。只需求出重心坐标,再做一个坐标变换即可。首先可以求出完整凸多边形的重心,再可以求出圆并的重心,最后可以求出薄木板的重心坐标。

    #include <bits/stdc++.h>
    using namespace std;
    
    char *__abc147, *__xyz258, __ma369[100000];
    #define __hv007() ((__abc147==__xyz258) && (__xyz258=(__abc147=__ma369)+fread(__ma369,1,100000,stdin),__abc147==__xyz258) ? EOF : *__abc147++)
    
    int getInt(){
    	int sgn = 1;
    	char ch = __hv007();
    	while( ch != '-' && ( ch < '0' || ch > '9' ) ) ch = __hv007();
    	if ( '-' == ch ) {sgn = 0;ch=__hv007();}
    
    	int ret = (int)(ch-'0');
    	while( '0' <= (ch=__hv007()) && ch <= '9' ) ret = ret * 10 + (int)(ch-'0');
    	return sgn ? ret : -ret;
    }
    
    #ifndef ONLINE_JUDGE
    int const SIZE = 7;
    #else
    int const SIZE = 2010;
    #endif
    
    using Real = double;
    using vi = vector<int>;
    using vvi = vector<vi>;
    using pii = pair<Real, Real>;
    using vpii = vector<pii>;
    
    Real const EPS = 1E-8;
    Real const PI = acos(-1.0);
    inline int sgn(Real x){return x>EPS?1:(x<-EPS?-1:0);}
    inline bool is0(Real x){return 0 == sgn(x);} 
    inline Real sqr(Real x){return x * x;}
    inline Real cub(Real x){return x * x * x;}
    inline Real myacos(Real x){
        if(x > 1) x = 1.0;
        if(x < -1) x = -1.0;
        return acos(x);
    }
    
    struct Point{
        Real x, y;
        Real dist(const Point &b)const{
            Real u = x - b.x, v = y - b.y;
            return sqrt(u*u+v*v);
        }
    };
    
    struct Circle{
        Point center;
        Real radius;
        /// 两个圆相交,返回圆弧角度的区间,可能是一段,也可能是两段
        /// 角度范围为[-Pi, Pi)
        vpii inter(const Circle &b)const{
            Real d123 = center.dist(b.center);
            Real u111 = fabs(radius - b.radius);
            Real u222 = radius + b.radius;
            assert(sgn(u222-d123) > 0 && sgn(d123 - u111) > 0);
    
            Real cosvalue = (radius * radius + d123 * d123 - b.radius * b.radius) / (2.0 * radius * d123);
            Real jiao = myacos(cosvalue);
            Real anchor = atan2(b.center.y - center.y, b.center.x - center.x);
            Real from = anchor - jiao, to = anchor + jiao;
    
            vpii ans;
            if(sgn(to - PI) >= 0){ // 分两段
                ans.emplace_back(-PI, to-PI-PI);
                ans.emplace_back(from, PI);
                return ans;
            }
            if(sgn(from+PI) < 0){ // 分两段
                ans.emplace_back(-PI, to);
                ans.emplace_back(from+PI+PI, PI);
                return ans;
            }
            ans.emplace_back(from, to);
            return ans;
        }
    };
    
    Real cross(const Point &O, const Point &A, const Point &B){
        Real xoa = A.x - O.x, yoa = A.y - O.y;
        Real xob = B.x - O.x, yob = B.y - O.y;
        return xoa * yob - xob * yoa;
    }
    
    /// 原函数求差值
    inline Real diff(Real (*f)(const Circle&, Real), const Circle&c, Real alpha, Real beta){
        return  f(c, beta) - f(c, alpha); 
    }
    
    /// 求面积的函数,缺一个0.5的因子
    Real f(const Circle &c, Real theta){
        return c.radius * (c.radius * theta + c.center.x * sin(theta) - c.center.y * cos(theta));
    }
    
    /// 求重心的x坐标的原函数,缺一个0.5的因子
    Real fx(const Circle &c, Real theta){
        Real sint = sin(theta);
        Real r2 = sqr(c.radius);
        return c.radius * ((sqr(c.center.x)+r2)*sint + c.radius*c.center.x*(theta+0.5*sin(theta+theta)) - r2*cub(sint)/3.0);
    }
    
    /// 求重心的y坐标的原函数,缺一个0.5的因子
    Real fy(const Circle &c, Real theta){
        Real cost = cos(theta);
        Real r2 = sqr(c.radius);
        return c.radius * (r2*cub(cost)/3.0 + c.radius*c.center.y*(theta-0.5*sin(theta+theta)) - (r2+sqr(c.center.y))*cost);
    }
    
    /// 求圆并,索引从0开始
    tuple<Real, Real, Real> unite_circles(const Circle c[], int n){
        /// 首先求各圆相交的情况
        vvi status(n, vi());
        vi han(n, 0);
        for(int i=0;i<n;++i){
            if(han[i]) continue; // i被包含
            auto ci = c + i;
            if(is0(ci->radius)){
                han[i] = 1; continue;
            }
    
            for(int j=i+1;j<n;++j){
                auto cj = c + j;
                if(is0(cj->radius)){
                    han[j] = 1; continue;
                }
                Real u = ci->center.dist(cj->center);
                Real v1 = fabs(ci->radius - cj->radius);
                Real v2 = ci->radius + cj->radius;
                if(sgn(v1-u) >= 0){ // 包含
                    if(sgn(ci->radius - cj->radius) >= 0){
                        han[j] = 1; // j被包含
                    }else{
                        han[i] = 1; // i被j包含,i就不用再算了
                        break;
                    }
                }else if(sgn(v2-u) > 0){ // 相交
                    status[i].push_back(j);
                    status[j].push_back(i);
                }
            }        
        }
        /// 处理每个圆
        Real ans = 0, ansx = 0, ansy = 0;
        vpii vec;
        for(int i=0;i<n;++i){
            if(han[i]) continue; // 说明是被包含的
            const Circle * ci = c + i;
            const vi & st = status[i];
            if(st.empty()){ // 说明整个圆都是边界
                ans += diff(f, *ci, -PI, PI);
                ansx += diff(fx, *ci, -PI, PI);
                ansy += diff(fy, *ci, -PI, PI);
                continue;
            }
            vec.clear(); 
            vec.reserve(st.size());
            /// 对每个相交的圆求相交区间
            for(int j: st){
                auto tmp = ci->inter(c[j]);
                vec.insert(vec.end(), tmp.begin(), tmp.end());
            }
            /// 相交区间排序
            sort(vec.begin(), vec.end());
            /// 对每一段露在外面的圆弧做积分
            Real left = -PI;
            for(const auto &p: vec){
                if(left < p.first){ // 说明有一段边缘
                    ans += diff(f, *ci, left, p.first);  
                    ansx += diff(fx, *ci, left, p.first);
                    ansy += diff(fy, *ci, left, p.first);
                    left = p.second;
                }else if(left < p.second){ // 更新边界的起点
                    left = p.second;
                }
            }
            /// 最后再加上一段,无论有没有
            ans += diff(f, *ci, left, PI);
            ansx += diff(fx, *ci, left, PI);
            ansy += diff(fy, *ci, left, PI);
        }
        return {ans, ansx, ansy}; // 都不用0.5,会抵消
    }
    
    int N, C, V;
    Circle Cir[SIZE];
    Point P[SIZE];
    
    void proc(){
        /// 求圆并的重心
        auto ans = unite_circles(Cir, C);
        /// 求多边形的重心和面积
        Real cgx = 0, cgy = 0, area = 0;
        for(int i=2;i<N;++i){
            Real tmp = cross(P[0], P[i-1], P[i]);
            area += tmp;
            cgx += tmp * (P[0].x+P[i-1].x+P[i].x)/3.0;
            cgy += tmp * (P[0].y+P[i-1].y+P[i].y)/3.0;
        }
        /// 求薄木板的重心
        Real leftarea = area - get<0>(ans);
        Real leftx = (cgx - get<1>(ans)) / leftarea;
        Real lefty = (cgy - get<2>(ans)) / leftarea;
        /// 凸多边形做一个坐标平移
        Point origin = P[V];
        for(int i=0;i<N;++i) P[i].x -= origin.x, P[i].y -= origin.y;
        leftx -= origin.x, lefty -= origin.y;
        /// 旋转
        Real theta = atan2(lefty, leftx);
        theta = -0.5 * PI - theta;
        Real ca = cos(theta), sa = sin(theta);
        for(int i=0;i<N;++i){
            Real x = P[i].x, y = P[i].y;
    		P[i].x = x * ca - y * sa + origin.x;
    		P[i].y = y * ca + x * sa + origin.y; 
        }
    }
    
    int main(){
    #ifndef ONLINE_JUDGE
        freopen("1.txt", "r", stdin);
    #endif
        N = getInt(); C = getInt(); V = getInt() - 1;
        for(int i=0;i<N;++i) P[i].x = getInt(), P[i].y = getInt();
        for(int i=0;i<C;++i) Cir[i].center.x = getInt(), Cir[i].center.y = getInt(), Cir[i].radius = getInt();
        proc();
        for(int i=0;i<N;++i) printf("%.7f %.7f\n", P[i].x, P[i].y);
        return 0;
    }
    
    展开全文
  • 宇宙第一小仙女\(^o^)/~~萌量爆表带飞=≡Σ((( つ^o^)つ~ dalao们点个关注呗~~ ------------------------------------我只是一条可爱哒分界线-------------------------------------- (一)三角形内切...

    欢迎访问https://blog.csdn.net/lxt_Lucia~~

    宇宙第一小仙女\(^o^)/~萌量爆表求带飞=≡Σ((( つ^o^)つ~ dalao们点个关注呗~

     

    --------------------------------我只是一条可爱哒分界线-------------------------------

     

    (一)三角形内切圆

     

    1.  半径计算公式:

     

    公式一:

    1)公式:r = (a+b-c) / 2.0

    2)证明:

    设Rt△ABC中,∠C=90度,BC=a,AC=b,AB=c
    证明方法一般有两种:
    方法一:
    如图设内切圆圆心为O,三个切点为D、E、F,连接ODOE
    显然有ODACOE⊥BC,ODOE
    所以四边形CDOE是正方形
    所以CDCE=r
    所以AD=b-r,BE=a-r,
    因为AD=AF,CECF
    所以AF=b-r,CF=a-r
    因为AF+CF=AB=r
    所以b-r+a-r=r
    内切圆半径r=(a+b-c)/2
    即内切圆直径L=a+b-c
    方法二:
    如图设内切圆圆心为O,三个切点为D、E、F,连接OD、OE、OFOA、OB、OC
    显然有OD⊥AC,OE⊥BC,OF⊥AB
    所以S△ABC=S△OAC+S△OBC+S△OAB
    所以ab/2=br/2+ar/2+cr/2
    所以r=ab/(a+b+c)
    =ab(a+b-c)/(a+b+c)(a+b-c)
    =ab(a+b-c)/[(a+b)^2-c^2]
    因为a^2+b^2=c^2
    所以内切圆半径r=(a+b-c)/2
    即内切圆直径L=a+b-c

     

    公式二:

    1)公式: r = 2.0*S / (a+b+c)

    2)证明:式中S是三角形的面积,(a+b+c)是三角形的周长。

    2*S = S△OBC + S△OCA + S△OAC = a*r + b*r + c*r

    移项化简即为 r = 2.0*S / (a+b+c)

     

    公式三:

    1)公式: r = sqrt ( ( (p-a)*(p-b)*(p-c) / p ) )

    2)证明:

    已知三角形三边 a,b,c,求其内切圆半径 r;

    已知海伦公式:S = √(p*(p - a)*(p - b)*(p - c));

    已知:p = (a + b + c) / 2.0,S = p*r;

    得:r = S / p;

    所以:r = √ ( (p-a)*(p-b)*(p-c) / p ) ;

     

    2. 相关概念:

    1)与三角形三边都相切的圆叫做三角形的内切圆

    2)圆心叫做三角形的内心。

    3)三角形叫做圆的外切三角形。

    4)三角形的内心是三角形三条角平分线的交点。

    5)三角形一定有内切圆且内切圆圆心定在三角形内部。

     


    (二)三角形外接圆

     

    1.  半径计算公式:

    1)公式:R = (a*b*c) / (4.0*s)

    2)证明:式中a,b,c分别为三角形的三边,S为面积。

    R = ( a*b*c ) / (4.0*S)

    R = ( ¼ *a*b*c ) / √ [ p*(p-a)*(p-b)*(p-c) ]

    R = ( a*b*c ) / √ [ (a+b+c)*(-a+b+c)*(a-b+c)*(a+b-c) ]

     

    2.相关概念:

    1)与多边形各顶点都相交的圆叫做多边形的外接圆。

    2)三角形有外接圆,其他的图形不一定有外接圆。

    3)三角形的外接圆圆心是任意两边的垂直平分线的交点。

    4)三角形外接圆圆心叫外心。

     


    (三)r,R,S之间的关系

     

    关系公式:r*R = ( S / p ) * ( ( a*b*c ) / ( 4.0*S ) ) = ( a*b*c ) / [ 2.0*(a+b+c) ]

     

    --------------------------------我也是有底线的---------------------------------

    宇宙第一小仙女\(^o^)/~萌量爆表求带飞=≡Σ((( つ^o^)つ~ dalao们点个关注呗~

    展开全文
  • python如何求圆面积

    2021-01-21 15:25:18
    首先我们要知道面积计算公式:S = πr²,公式中S为所求圆面积,π为圆周率,r为半径。 示例: # 定义一个方法来计算面积 def findArea(r): PI = 3.142 return PI * (r*r); # 调用方法 print(的...
  • 圆环的面积计算公式

    2020-11-25 04:31:21
    环形面积是在的面第一文库网积计算基础上进行教学的,面积计算学生接受并不太困难,但圆环却要把握住外和内这个形成环形的本质问题。圆环的面积教学,是通过一个例...《圆环的面积》教学反思通过集体备课...

    《圆环的面积》说课稿-------------陈林《圆环面积》是人教版义务教育课程标准实验教科书数学六年级上册第69 页例2 的教学内容。环形面积是在圆的面第一文库网积计算基础上进行教学的,圆的面积计算学生接受并不太困难,但圆环却要把握住外圆和内圆这个形成环形的本质问题。圆环的面积教学,是通过一个例...

    《圆环的面积》教学反思通过集体备课,《圆环的面积》的教学设计经过初案,正案,但在教学中仍有所不尽人意,有所思索……圆环的面积是在圆的面积计算基础上进行教学的,圆的面积计算学生接受并不太困难,但圆环却要把握住外圆和内圆这个形成圆环的本质问题。环形的特征:必须是同心圆,其次,两个圆之间的距离处处相等。在...

    教学圆面积公式的推导,我曾听过三种不同的教法,现分别简介过程及稍作评点。 〔第一种教法〕 (1)复习长方形面积计算公式。 (2)让学生自学课本中推导圆面积计算公式的过程。 (3)教师边用教具演示,边要求学生回答: ①拼成的图形近似于什么图形?想一想,如果等分的份数越多...

    课 题圆的面积计算课 时本课共 课时本课为第4 课时总课时第 课时课 时目 标1、认知目标:理解和掌握圆面积的计算公式。 在原有认知的基础上,让学生利用知识的迁移规律学到新知。2、能力目标:培养学生操作、观察、分析和概括等能力。渗透极限思想,进一步认识转化的思想...

    圆的面积教学反思“圆的面积”是在学生掌握了面积的含义及长方形、正方形等平面图形的面积计算方法,认识了圆,会计算圆的周长的基础上进行教学的。本课时的教学设计,我特别注意遵循学生的认知规律,重视学生获取知识的思维过程,重视从学生的生活经验和已有知识出发学习数学,理解数学。本节教学主要突出了以下几点:1、...

    圆面积公式是圆周率*半径的平方,用字母可以表示为:S=πr或S=π*(d/2)。(π表示圆周率,r表示半径,d表示直径)。圆的半径:r直径:d圆周率:π(数值为3.1415926至3.1415927之间……无限不循环小数),通常采用3.14作为π的数值圆面积:S=πr; S=π(d/2)半圆的面积:...

    六年级活动课教案课 题: 极 限姓 名: 马 清 彪济南师范附属小学邮编:250031 电话:0531-5953353教学内容:极限教学目标:1 渗透探究极限思想。培养学生观察、比较、分析、综合能力及动手操作能力。养成和增强学生的合作意识。2领会事物之间是联系和发展的辩证...

    教学重难点及教法说明说课内容是全日制小学数学课本第十二册"圆的面积"。本课是在学生已经掌握长方形面积的基础上,通过直观、演示,把圆分割成若干等份,再拼成一个近似的长方形,然后由长方形面积公式推导出圆面积的计算公式。圆的面积是本单元的教学重点,也是今后进一步学习圆柱体,圆锥体等知识的基矗本节课的教学...

    圆的面积 教学目的: 1、理解圆面积计算公式的推导过程,利用已有知识推导出圆面积计算公式,培养学生逻辑推理能力。 2、初步运用圆面积计算公式进行圆面积的计算。 3、通过圆面的剪、拼,培养学生操作、观察、分析的能力。 教学重、难点: 圆面积计算公式的推导过程,利用已有知识推导出圆面积计...

    圆的面积是最基本的平面图形,圆的面积这一课是在学生掌握了面积的含义及长方形、正方形等平面图形的面积计算方法,认识了圆,会计算圆的周长的基础上进行教学的。本课时的导学案设计,我特别注意遵循学生的认知规律,重视学生获取知识的思维过程,重视从学生的生活经验和已有知识出发学习数学,理解数学。精心设计导学案,...

    《圆的面积》教学反思武安市北关小学 宋建芳本节课是在学生掌握了面积的含义及长方形、正方形等平面图形的面积计算方法,认识了圆,会计算圆的周长的基础上进行教学的。成功之处:1.以数学思想为引领,探索圆的面积计算公式的推导。学生对于把圆的面积转化为已学过图形的面积并不陌生,通过以前相关知识的学习,学生很自...

    《圆的面积》教学反思1圆也是最常见的平面图形,它是最简单的曲线图形,圆的面积教学反思。俗话说“温故而知新”,在学习新知之前,引导学生回忆以前探究长方形、平行四边形、三角形、梯形面积公式的推导方法,引导学生发现“转化”是探究新的数学知识、解决数学问题的好方法,为下面探究圆的面积计算的方法奠定基础。一、...

    "圆的面积"教案[2011-9-9 10:14:00|By:无名树]"圆的面积"教案一、教学目标:1、通过操作、观察,引导学生推导出圆面积的计算公式,并能运用公式解答一些简单的实际问题。2、培养学生观察、分析、推理和概括的能力,发展学生的空间观念,并渗透极限、转化的数学思想。3、通过小组合作交流,培...

    圆的面积教学内容:六年制小学数学教科书第十一册第一单元《圆的面积》中的第一节课。教学目的:1通过教学使学生建立圆面积的概念,理解圆面积计算公式的推导过程,掌握圆面积的计算公式。2能正确地应用圆面积计算公式进行圆面积的计算,并能解答有关圆的实际问题。教学重点:理解和掌握圆面积的计算公式的推导过程教学难...

    “圆的面积”教学反思 “圆的面积”是在学生掌握了面积的含义及长方形、正方形等平面图形的面积计算方法,认识了圆,会计算圆的周长的基础上进行教学的。本课时的教学设计,我特别注意遵循学生的认知规律,重视学生获取知识的思维过程,重视从学生的生活经验和已有知识出发学习数学,理解数学。本节教学主要突出了以下几点...

    《圆的面积》教学反思《数学新课程标准》指出:数学教学要为学生提供充分从事数学活动和交流的机会,促进他们在自主探索的过程中真正理解和掌握数学知识技能。在实际的教学活动中,教师经常感到组织的活动学生热闹地参与,但活动后,落实到说、写时,中下生尤其是学困生就参与不了学习活动了。针对此我设计了本节课的教学活...

    小编今天推荐给大家的是圆的面积教学设计,希望对大家有用。关注unjs网获得更多内容!【教学目标】1、认知目标使学生理解圆面积的含义;掌握圆的面积公式,并能运用所学知识解决生活中的简单问题。2、过程与方法目标经历圆的面积公式的推导过程,体验实验操作,逻辑推理的学习方法。3、情感目标引导学生进一步体会“...

    教学内容:国标本苏教版教科书小学数学五年级下册第103~105页“圆的面积”以及相应的“练一练”、练习十九第1题。教学内容分析:圆的面积是学生认识了圆的特征、学会计算圆的周长以及学习过直线围成的平面图形面积计算公式的基础上进行教学的。由于以前所学图形的面积计算都是直线图形面积的计算,而像圆这样的曲边...

    在本课教学时,让学生认识到转化是一种很重要的数学思想方法,在解决日常问题以及在科学研究中,人们常常就是把复杂转化为简单,未知转化为已知、抽象转化为具体等方式来处理的。下面是小编收集整理的圆的面积计算教学设计,希望对您有所帮助!教学理念:本课时是在学生掌握了直线图形的面积计算的基础上教学的,主要是对圆...

    圆环面积教学反思李建波在今后的教学中能逐步改进,日趋完善,使自己不断走向成熟。 圆环面积是在圆的面积计算基础上进行教学的,圆的面积计算学生接受并不太困难,但圆环却要把握住外圆和内圆这个形成圆环的本质问题。弗赖登塔尔强调,学生在知识的学习过程中,应有亲身体验,获得“做出来”的数学,而不是给以“现成的”...

    1、一个圆的直径扩大2倍,它的面积就扩大()倍。A、2B、4C、82、周长相等的长方形、正方形和圆,()的面积最大。A、长方形B、正方形C、圆3、一个圆的周长是18.84厘米,它的面积是()平方厘米。A、9.42B、18.84C、28.264、大圆周长与小圆周长的比是3∶2,小圆面积是大圆面积的()...

    圆的面积公式半径为r则面积为S=πr^2其他回答1圆面积公式为:S=πR^2 S--圆面积; π--圆周率,其值为3.1415926535; R^2--圆半径的平方.2 圆的半径:r 直径:d 圆周率(π)设为3.1415926535……, 通常采用3.14作为π的值 圆面积:π*r^2 圆周长:C...

    展开全文
  • 内切圆半径:r=2 * S / (a + b + c),其中S是三角形面积,a、b、c是三角形三边。 外接圆半径:R=a * b * c / (4 * S) S可以用海伦公式S = (p(p - a)(p - b)(p - c))^(1/2)算得 p = (a + b + c)/2 对于不同的场合...
  • **(1)定义圆半径r,圆周率可定义为符号常量PI,周长变量c和面积变量area; (2)根据周长和面积公式计算c和area的值; (3)输出计算结果。
  • 我现在详细教你如何编写一个输入半径求圆的周长和面积工具/材料电脑Eclipse neon软件操作方法01执行菜单栏的【文件>新建>Java项目】命令,将弹出【新建Java项目】对话框,如下图所示。02在弹出的【新建...
  • c代码-面积公式

    2021-07-14 21:54:05
    c代码-面积公式
  • 数学内切圆半径公式

    2021-05-20 10:31:13
    1.任意三角形内切半径:设三角形三边分别为a,b,c,设P=(a+b+c)/2.由海伦公式可知该三角形面积S=√[a(p-a)(p-b)(p-c)].则内切圆半径r=S/[(a+b+c)/2]={√[p(p-a)(p-b)(p-c)]}/p.2.任意三角形外接半径:设...
  • 圆半径r,圆柱高h,求圆周长、圆面积、圆柱体体积。用scanf输入数据(半径为1.5,高为3), 输出计算结果,输出时要有文字说明,取小数后2位数字。 程序提示: #define PI 3.14159 算法如下:定义float型变量 r, ...
  • 代码段: a = float(input()) if a >= 0: s = 3.14 * a * a print(s) else: raise (Exception) 效果图:
  • python计算面积,读程序...第一个空是return s第二个空是%.6fPython编程题:输入圆半径,输出圆面积#coding:utf-8#author:chenhaifeia=input("请输入半径")b=3.14*a*aprint b在线等!!!急!!!Python圆面...
  • 本题是输入整数或表达式进入宏定义和函数来求面积的。若将输入的半径改成表达式则会因为宏定义与函数的不同,有所区别。 因为宏定义是直接替换,所以例如输入为确定的值时,宏定义和函数的编写可以没有区别,例如...
  • 【编程题】从字符串中删除指定的字符。同一字母的大小写按不同字符处理。 例如:若程序执行时,输入字符串为: turbo c and Borland c++ ,从键盘上输入字符: n ,...公式为:C=5/9(F-32)【单选题】以下程序有语法性错误,...
  • 的标准方程 (x-a)2+(y-b)2=r2 注:...0抛物线标准方程 y2=2px y2=-2px x2=2py x2=-2py直棱柱侧面积 S=c*h 斜棱柱侧面积 S=c'*h正棱锥侧面积 S=1/2c*h' 正棱台侧面积 S=1/2(c+c')h'圆台侧面积 S=1/2(c+c')l=pi(R+r)...
  • ·圆形周长的计算公式 首先要认识到,圆形的周长与它的直径(或半径)的比是一个定值。... ·圆形面积和周长公式 晕死你 圆面积公式5种证明( π是周长与半径的比值常数 ): 一、拼割法 将以圆心为顶点切成微小的...
  • 输入圆形半径圆形的周长和圆形的面积,并将结果输出。
  • VB程序题:输入半径,计算周长和圆面积,如下图所示。进一步要求,为了保证程序运行的正确,对输入的半径要进行合法性检查,数据检查调用IsNumeric函数,参阅教材例2.5;若有错,利用MsgBox显示出错信息,如下图所...
  • 输入半径求圆的直径、周长和面积。(圆周率取值为3.14)
  • public class Case_4输入半径求圆面积 { public static void main(String[] args) { System.out.println("本程序在您输入一个数后,会输出以您输入的数为半径半径"); System.out.println("请输入半径.
  • 相关问题设随机变量X的密度函数为,则c= .e339fd828a3e5af974ac21fd9ebc7f0b.gif函数重写与函数重载的相同之处是?: 函数 函数重载 处 函数 名中国大学MOOC: 在调用指针型函数时,如果被调函数的形参是指针变量,则...
  • 用C语言编程推算面积公式

    千次阅读 2021-05-19 06:18:29
    C语言:任意面积:/*C语言编一个程序任意面积*/代码如下:#include//引入头文件#define PI 3.1415926f//定义PI的值void main()//无返回值类型{float r,area;//定义两个浮点型变量printf("请输入半径...
  • 这道题的答案应该是这样, 我给你说一下思路首先这个问题只需要一次循环就能得出答案因为已知内切圆半径和三角形是直角这两个信息, 这时候设其中一条直角边长度为X 另一条直角边的长度是不是就已经确定了?然后就是...
  • 内切圆半径公式推导

    2021-05-20 10:29:43
    内切圆半径公式推导2020-01-08 12:00:23文/叶丹画一个三角形及三角形的内接,分别连接圆心和三角形三个顶点,再分别连接圆心和三个切点,可得这三条线段分别与三角形三条边a、b、c垂直,这时三角形面积S=ar/2+br/2...
  • 圆面积公式积分法推导

    万次阅读 2017-11-23 09:31:59
    面积公式:S=πr2 S = \pi r^2 推导考虑从圆心以某一半径向外生长的方式,某一个半径r处,如果半径增量很少,面积增量可以看成2πrdr2\pi r dr, 即此处的柱面面积,生长速度即导数为2πr2\pi r关键点:增加面积为...
  • 圆面积计算公式:3.14半径半径(主要用到的知识点是while循环) /** 半径 */ private double count; public Test03(double count) { this.count = count; } /** 计算面积的方法 */ public static double sh....
  • python如何求圆面积?...首先我们要知道面积计算公式:S = πr²,公式中S为所求圆面积,π为圆周率,r为半径。示例:# 定义一个方法来计算面积def findArea(r):PI = 3.142return PI * (r*r);# 调...
  • 三角形的内切和外接圆半径公式

    千次阅读 2013-11-01 14:38:42
    设三角形三边为 a、b、c 半周长 p=(a+b+c)/2 三角形面积 S=√[p(p-a)(p-b)(p-c)]   内切圆半径 r = S/p=√[(p-a)(p-b)(p-c)/p]= ½√...外接圆半径 R= abc/(4S)= ¼ abc/√[p(p-a)(p-b)(p-c)]= abc/√[(a+b+c)(-a+b+
  • 给定半径r,求圆面积

    千次阅读 2019-10-16 19:27:08
    给定半径r,求圆面积。 输入格式 输入包含一个整数r,表示半径。 输出格式 输出一行,包含一个实数,四舍五入保留小数点后7位,表示面积。 说明:在本题中,输入是一个整数,但是输出是一个实数。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,570
精华内容 4,628
关键字:

圆的面积求半径公式