圆周率是谁发明的_利用Delphi技术直观实现圆周率的精确测算
时间:2019-01-03 03:38:06 来源:雅意学习网 本文已影响 人
摘 要: 圆周率π是个古老的数据,早在1700多年前祖冲之已将其值精确到小数点后7位,而如今通过计算机程序已能算到十亿位之多。在课堂及平时工作中,直观、迅速、精确的测算出圆周率,对于课程的学习是非常有价值的。这里使用Delphi模拟一种测算圆周率的方法。
关键词: Delphi技术 模拟 圆周率
1.前言
在日常的教学及相关工作中,我们经常要介绍并使用圆周率,虽有具体的数据及相关的历史计算事件,但对于学生及普通的人员来说,很难弄懂其的计算原理,印象不深,效果差。本文通过Delphi即Windows平台下的可视化应用程序开发工具,提供一种有效的方法,通过具体的编程技术来高效、直观地完成圆周率的计算。
2.设计原理
本程序只是一个概率模拟。首先绘制一个边长为200的正方形,在其中随机生产多个点,该正方形中可以容下一个大圆的四分之一圆。以圆弧为界,在圆弧内的即为圆内点,之外的即为圆外点。由于点数非常之多,几乎布满整个正方形,因此点数就可以看成是其所在区域的面积。则作如下推导:如图1所示,红色区域表示1/4圆内;黄色区域表示圆外。
红色区域面积∶正方形面积≈红色区域点数∶总点数
红色区域面积∶正方形面积=1/4圆面积∶正方形面积
1/4圆面积∶正方形面积≈红色区域点数∶总点数
π×200×200/4∶200×200≈红色区域点数∶总点数
π≈4×红色区域点数/总点数
在区域的点数会出现重复,所以计算机的最终结果与实际π值会有差别,但是当点数足够多时,则可以看成一个非常近似的结果。
3.功能实现
3.1控件说明
本程序有图有数据,因此首先在窗体上设置一Image控件,其主要用于显示图像。在整个窗体生成时则加载,该控件的绘图代码绘制一个外边框为黄色,内部为黑色边长为200的正方形。在显示数据方面,这里采用Label标签控件,使用它的Caption属性用于实时显示圆内点数、圆外点数、当前计算的π值、当前X轴、Y轴的坐标。为了控制方便程序设置了两个按钮用于开始和暂停模拟。窗体最下方设置一个显示当前系统时间的Text文本控件,方便用户进行比对。为了自动快速的进行模拟。程序设置了一个主要控件Timer定时器。其是一个非可视化组件。利用其可以实现自动打点。它的Interval属性在这里十分重要,用于控制Timer触发事件(打点)的时间间隔。单位是ms,默认值1000即1s,这里为了模拟的速度,设置为1,即0.001s。
程序各控件布局如图2。
3.2代码实现
整个窗体在创建时的代码:
procedure TForm1.FormCreate(Sender: TObject);
begin
′在Image1控件区域内画一个边长为200的正方形作为程序的演示窗口,画亮绿色的正方形演示框
Image1.Canvas.Brush.Color:=clBlack;
Image1.Canvas.FillRect(Rect(0,0,199,199));
Image1.Canvas.Pen.Color:=clyellow;
Image1.Canvas.Rectangle(0,0,199,199);
DoubleBuffered:= True;
end;
添加Timer控件实现点的绘制和π的计算:
var
a,b,i,ii:longint;
pi:single;
begin
′随机产生坐标点
i:=random(200);/随机获取0-200以内的整数
ii:=random(200);
if (i*i+ii*ii 本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文