標題:
利用物理知識,用C語言繪制電場線和磁感線源程序
[打印本頁]
作者:
我的名字
時間:
2020-3-3 19:39
標題:
利用物理知識,用C語言繪制電場線和磁感線源程序
// 直線靜電場.cpp : 定義控制臺應(yīng)用程序的入口點。
//
#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");
}
復(fù)制代碼
全部資料51hei下載地址:
line.rar
(4.2 KB, 下載次數(shù): 14)
2020-3-3 19:39 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
zq05913299104
時間:
2020-12-25 17:43
寫的很好
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1