标题:
利用物理知识,用C语言绘制电场线和磁感线源程序
[打印本页]
作者:
我的名字
时间:
2020-3-3 19:39
标题:
利用物理知识,用C语言绘制电场线和磁感线源程序
// 直线静电场.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <graphics.h>
#include <math.h>
#define PI 3.1415926535
#define L 200
#define R 100
#define N 1000
#define M 50000
#define LINE 12
double Bx(double O,double x,double y)
{
double r1,r2;
r1=sqrt(pow(x,2)+pow(y,2)+R*R-2*y*R*cos(O));
r2=sqrt(pow(L-x,2)+y*y+R*R-2*y*R*cos(O));
return((R*R-y*R*cos(O))/pow(r1,3)+(R*R-y*R*cos(O))/pow(r2,3));
}
double By(double O,double x,double y)
{
double r1,r2;
r1=sqrt(pow(x,2)+pow(y,2)+R*R-2*y*R*cos(O));
r2=sqrt(pow(L-x,2)+y*y+R*R-2*y*R*cos(O));
return(x*R*cos(O)/pow(r1,3)+(x-L)*R*cos(O)/pow(r2,3));
}
int main()
{
initgraph(800,800,SHOWCONSOLE);
setbkcolor(WHITE);
cleardevice();
setorigin(400,400);
setlinestyle(PS_DASH|PS_ENDCAP_SQUARE,2);
setlinecolor(RED);
line(0,-400,0,400);
ellipse(-30,R,30,-R);
ellipse(170,R,230,-R);
setlinestyle(PS_SOLID|PS_ENDCAP_SQUARE,2);
setlinecolor(BLACK);
line(-400,0,400,0);
double r,x,y,O,dO,bx,by,BBx,BBy,B,x0,y0,a[LINE-1];
dO=2*PI/N;
for(int i=1;i<LINE;i++)
{
a[i-1]=R-i*2*R/LINE;
}
for(int i=0;i<LINE;i++)
{
x=0;
y=a[i];
if(y==0)
{
continue;
}
for(int j=0;j<M;j++)
{
bx=(Bx(0,x,y)+Bx(2*PI,x,y))/2;
by=(By(0,x,y)+By(2*PI,x,y))/2;
for(int k=1;k<=N-1;k++)
{
O=k*dO;
bx=bx+Bx(O,x,y);
by=by+By(O,x,y);
}
BBx=bx*dO;
BBy=by*dO;
B=sqrt(pow(BBx,2)+pow(BBy,2));
x0=x+BBx/B;
y0=y+BBy/B;
line(x,y,x0,y0);
if(pow(x0+1,2)<=1&&pow(y0-a[i],2)<=4)
{
break;
}
x=x0;
y=y0;
}
}
system("pause");
}
复制代码
全部资料51hei下载地址:
line.rar
(4.2 KB, 下载次数: 14)
2020-3-3 19:39 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
zq05913299104
时间:
2020-12-25 17:43
寫的很好
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1