1. 圆有哪些公式和计算方法
圆的周长和面积公式。很多上小学的孩子都会开始学习圆的周长面积的算法,孩子难免会遇见不懂的题目,父母应该提前知道公式,方便教育孩子。
圆的周长和面积公式:
1、圆周长就是:C=πd或者C=2πr(其中 d是圆的直径, r是圆的半径)。
2、圆面积公式:S=πr或S=π×(d/2)。(π表示圆周率(3.1415927……),r表示半径,d表示直径)。
(1)抛光圆圈算法扩展阅读:
1、圆周长是指在圆中内接一个正n边形,边长设为an,正边形的周长为n×an,当n不断增大的时候,正边形的周长不断接近圆的周长C的数学现象,即:n趋近于无穷,C=n×an。
2、圆周率:数学家刘徽用的是“割圆术”的'方法,也就是用圆的内接正多边形和外切正多边形的周长逼近圆周长,求得圆接近192边型,求得圆周率大约是3.14。
3、扇形面积:
在半径为R的圆中,因为360°的圆心角所对的扇形的面积就是圆面积S=πR2;;,所以圆心角为n°的扇形面积:
S=(nπR2)÷360
扇形还有另一个面积公式
S=1/2lR (其中l为弧长,R为半径 )
本来S=(nπR2)÷360
按弧度制。2π=360度。因为n的单位为度.所以l为角度为n时所对应的弧长.即.l=θR=(n/180)π×R
∴s=(n/180)π*R*π*R/2π=1/2lR.
2. C语言用Bresenham算法画圆,哪位高手教教,主要是算法里的内容,谢谢!
的确哈,关键在于对delta的理解
可以看到,都是delta=2*(1-radius)这样的,起作用应该是判断要画的点x、y坐标的变化趋势,先把我注释了的代码贴下,加了getch();可以看到画的过程
-----------------------------------------------------------------
#include<graphics.h>
#include<stdio.h>
void BresenhemCircle(int centerx, int centery, int radius, int color, int type);
void main()
{
int drive=DETECT,mode;
int i,j;
initgraph(&drive,&mode,"");
BresenhemCircle(300,200,100,15,0);
getch();
}
void BresenhemCircle(int centerx, int centery, int radius, int color, int type)
{
int x =type = 0;/*初始横坐标为原点*/
int y = radius; /*初始纵坐标远离原点*/
int delta = 2*(1-radius);
int direction;
while (y >= 0)
{
getch();
if (!type)/*执行*/
{
/*在上半圆画两点*/
putpixel(centerx+x, centery+y, color);
putpixel(centerx-x, centery+y, color);
/*在下半圆画两点*/
putpixel(centerx-x, centery-y, color);
putpixel(centerx+x, centery-y, color);
getch();
}
else/*不执行*/
{
line(centerx+x, centery+y, centerx+x, centery-y);
line(centerx-x, centery+y, centerx-x, centery-y);
getch();
}
/*以下代码设置下次四点的位置,圆是对称的,且此方法相当于同时画四个圆弧
观察右上方圆弧可知,前一半是x增的要快些,后一半是y减的快些*/
if (delta < 0)
{
if ((2*(delta+y)-1) < 0)
direction = 1; /*选择横向加*/
else
direction = 2;
}
else if(delta > 0)
{
if ((2*(delta-x)-1) > 0)
direction = 3; /*选择纵向减*/
else
direction = 2;
}
else
direction=2;
switch(direction)
{
case 1:
x++;/*只横坐标远离原点*/
delta += (2*x+1); /*小执行到这,所以加*/
break;
case 2:
x++;
y--;/*横向远离,同时纵向靠近*/
delta += 2*(x-y+1); /*即(2*x+1)+(-2*y+1)*/
break;
case 3:
y--;/*只纵坐标靠近原点*/
delta += (-2*y+1); /*大执行到这,所以减*/
break;
}
}
}