APP下载

基于OpenGL的三维电场线模拟

2011-12-09丁益民

大学物理实验 2011年5期
关键词:电场线模拟法点电荷

江 略,丁益民

(湖北大学,湖北武汉 430062)

基于OpenGL的三维电场线模拟

江 略,丁益民

(湖北大学,湖北武汉 430062)

在Visual C++环境下,设计了一种基于OpenGL的三维电场线模拟软件。该软件采用微分方程法来生成电场线,可以准确地模拟不同观察视角下,静止点电荷的三维电场线。用户可以拖动鼠标随意转动观察视角,并可随意设置电荷个数、分布以及大小。

电场线;计算机模拟;OpenGL

电场线是电磁学中的一个重要的物理概念,由于它既看不见又摸不着,理解起来不太容易,因此将其形象地展示出来对电场线的学习具有重要的作用。目前,电场线的绘制有多种方法,如手工描绘法、实验模拟法以及计算机模拟法等。其中计算机模拟法具有描绘准确、操作方便等优点。目前已经有各种各样的模拟软件[1-2]。但是这些软件要么是预先算好的,不能由用户设定摆放位置,要么只是局限在二维。为了克服以上的不足,我们在Visual C++环境下,通过调用Open GL设计了一种可以任意改变参数并可随意转动观察视角的三维电场线模拟软件。

1 模拟方法与算法

1.1 电场线

点电荷在周围空间产生的电场由库仑定律和叠加原理决定[3-4]。根据电磁理论有

1.2 寻找电场线起点

起点必须平均分布在以电荷为中心的一个半径极小的球面上。但事实上,不是任意一个数目的点,都可以在球面上均匀分布的。仅有所熟知的五个正多面体的顶点才是严格意义上的均匀分布。文章采用E·B·Saff和A·B·J·Kuijlaars(1997)[5]对此提出了一种算法,能够产生较均匀的分布。

1.3 电场线终止情况判定

电场线终止情况有三种,一是终止于无穷远,二是终止于另一个电荷,三是终止于一个电场强度为零的点。对第一种的处理,给一个限定范围,超出范围就不再步进。对第二种的处理,每次步进完后判断一下是否落入另一个电荷同心小球域即可。对第三种,每次步进之前判断一下电场是否为零即可。

2 程序特点

软件的操作界面,见图1。

图1 软件操作界面

本程序采用MFC编制,Open GL绘图[6],界面十分简洁,用户点击添加电荷,输入坐标和大小,便可在一定范围内任意添加多个电荷,点击清空电荷即可还原。用鼠标拖动显示区便可旋转观察角度。还可滑动鼠标滚轮任意缩放。另外本软件设立四个典型的情况对应四个按钮,一键便可观察电场模型,这对于教师展示提供了很大方便。这四个典型情况分别是单个电荷,同等异号电荷,同等同号电荷,以及只有在三维情况下才有的四面体顶点分布的电荷。

OpenGL是一个开源的三维绘图SDK。从其官方网站下载库,头文件以及源文件,在程序中即可方便地调用。

使用方法:进入Visual C++之后选择MFC的对话框模式,此对话框作为母框架。新建一个类GLWnd,从CWnd类继承,在对话框类中添加一个它的对象,这个对象作为主要的绘图区。在对话框初始化的时候,像普通CWnd类一样生成窗口。然后,在GLwnd初始化的时候将Open GL初始化。最后只要重载OnPaint()函数,将需求绘图内容添加进去即可。

由于视角必须由用户调整,因此必须在鼠标移动事件中添加消息响应函数,记录鼠标移动方向,根据方向设定Open GL参数,以调整视角。

电场线的绘制中用红色表示电势高的点,蓝色表示电势低的点,以方便观察。

3 模拟结果

首先模拟等量异种电荷的三维电场线。在软件操作界面上选择“等量异号电荷”,再添加电荷的坐标值及电量值,单击确定,在软件图形显示区中将会显示模拟结果,见图2。

图2 双极子正视图

用鼠标拖动显示区可旋转观察视角,当设定视角为45°斜视时,模拟结果,见图3。

图3 双极子斜视图

还可以模拟双杆的电场线分布情况,杆是由七个等量的电荷排成直线组成,两杆的电荷是异号的,观察角度设定为45°,模拟结果,见图4。

图4 拟双杆斜视图

结果分析:软件绘制的电场线由于是根据电磁学理论通过解方程得出,模拟结果与理论结果相符合,具有较强的科学性。该软件突破了二维限制,能够展现较为复杂的三维电场线。但是由于等势面在三维条件下不好表示,因此没有设计此功能。

[1] 姚晓玲,赵萍,刘力.点电荷对的电力线和等势面的计算机模拟[J].后勤工程学院院报,2005(1):72-74.

[2] 钱懿华,董慎行.用计算机模拟点电荷在二维平面上的静电场[J].大学物理,2003,22(1)::31-39.

[3] 梁灿彬,秦光戎,梁竹兼.电磁学[M]2版.北京:高等教育出版社,2004:1-25.

[4] R.P.Feynman,R.B.Leighton,M.Sands.费恩曼物理学讲义[M].2卷.上海:上海科学技术出版社,2005.

[5] E.B.Saff,A.B.J.Kuijlaars.Distributing many points on the sphere[J].Mathematical Intelligencer,1997,9(1):5-11.

[6] Open GL Architecture Review Board,Dave Shreiner,Mason Woo,Jackie Neider,Tom Davis.OpenGL编程指南[M].6版.北京:机械工业出版社,2009.

Three-Dimensional Simulation of Electric Field Lines Based on OpenGL

JIANG Lue,DING Yi-min

(Hubei University,Hubei Wuhan 430062)

In Visual C++environment,we designed a three-dimensional OpenGL-based simulation software of electric field lines.The software generates the electric field line by differential method.It can accurately simulate the static point charge of the three-dimensional electric field lines in different viewport.Users can easily drag the mouse to rotate viewing angle,and change the number of charge point,position and size.

electric field line;computer simulation;Open GL

O 411.3

A

1007-2934(2011)05-0079-03

2011-04-01

猜你喜欢

电场线模拟法点电荷
对一条特殊电场线的讨论
点电荷的平衡与非平衡问题的进阶学习
可控震源地震勘探中的数值模拟法应用
浅议CAI中电场变化的模拟描述
蒙特卡洛模拟法计算电动汽车充电负荷
基于EMD和4阶累积量的船舶轴频电场线谱提取
随机模拟法求不规则图形面积
大规模非线性系统随机振动显式迭代Monte Carlo模拟法
VC++实现点电荷电场线与电势线的绘制
均匀带电圆面作点电荷近似的一种方法