成像代码初始化部分
Posted 曙光晨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了成像代码初始化部分相关的知识,希望对你有一定的参考价值。
声明
由于实验的老师特有的查重方式以及计算成绩的方法,所以请不要直接照抄本文的代码。
这里的代码可能会有一些BUG,请大家注意
注:我这里的使用的是C++,VS2019 ,Graph2019,可能之后的版本会不同这里说明一下,说不定等我啥时间闲了,我写个C#版本的。(笑)
代码初始化部分
这里我默认你是已经将数据进行了完整的读入。
首先 计算行列的大小;
这里我先定义一下:
左到右-》0到行
轴上到外壳-》0到列
列 = 电极内半径网格数+电极内孔边沿到边界处的径向网格数
lin = M1+M2;
//
行 row= 相邻电极之间划分的步数之和+电极个数(老师文件上写的总网格数N1+N2+....+Nn+n-1,我感觉这个是行数,不想是总网格数)
//之后是开空间
电场的空间大小= row*lin;
//由于电极孔径内是空的,所以这里初始化时将他们都设为0
for (int i=0;i<lin;i++)
if (i<电极内孔径半径)
for (int j=0;j<row;j++)
E[j,i]=0;
if (电极内孔径半径<i<电极内孔到边缘的半径)
//这里遇到了电极,所以将电极之间的部分设定为0,
for (int j=前一个电极的位置;j<后一个电极的位置;j++)
E[j,i]=0;
这里再加一个将电极的电位赋予的部分。
这里写一个电极跳转,把j的参数更新。
//注:这里要注意一下荧光屏的位置
if(i==最外面的一行)
将电极定位
for(int k = 上一个电极的位置;k<后一个电极的位置;k++)
for (int x =1;x<N;x++)
E[k,i]=后一个电极的电位V2-前一个电极的电位V1)/这两个之间的步长N *x
//大致意思就是最外面电极之间的电位是逐渐改变的,有一定的梯度。
注意荧光屏幕
记得电极要跳转,k的参数记得改变
BUG:
上面这个逻辑,大概率是有一些问题,有些细节没有太注意,大家留心。
这里其实也可以写一些关于Z,R轴的坐标问题,我感觉这里其实不算是初始化就没写。
这里我说一下我的思路
loop
Z轴的步长 = 每个电极之间的距离/电极之间对应的步长
R轴步长 = 对应的半径/对应的步长
loop
Z轴坐标 =Z轴每次叠加对应步长之和的结果
loop
R轴坐标 = R轴每次叠加对应步长之和的结果
同样记得关闭空间,记得注意;
大家加油!(这里如此麻烦就2分,不知该说啥,哭)
以上是关于成像代码初始化部分的主要内容,如果未能解决你的问题,请参考以下文章