Paraview热流图:flux与element关联

paraview热流图(1):添加glyphs
计算机几何

ParaView如何计算Cell的体积

You can also use the "Python Calculator" with expression
"volume(inputs[0])" and the "Array Association" set to "Cell Data".

1.计算向量与空间几何体的交点(C++实现)

1.1已知三个点,求平面方程

已知三个点坐标怎样求平面方程,将已知三个点的坐标分别用P1(x1,y1,z1),P2(x2,y2,z2),P3(x3,y3,z3)表示。(P1,P2,P3不在同一条直线上。)

方法一:

①设3点A,B,C,计算向量AB和AC。

②那么法向量n = AB × AC 注意这里用向量积

知道三个点怎么求那个平面的法向量~
已知三点求平面法向量

③得到n(ni,nj,nk)后,设方程为,ni * X + nj * Y + nk * Z = K。
随便代入一个点的坐标得出K值后就可以得到平面方程。

方法二:

把方程设为x+ay+cz+d = 0,

那么就是3个未知数了,代入3个点,解这个方程就可以。

向量的点乘和叉乘(转)
点乘和叉乘及其物理意义(C++STL实现)

1.2空间几何体的重心

空间直线方程的几种常见形式
已知两个空间点,可以得到空间直线的方向向量v=(m,n,p)。
根据空间直线的点向式方程,得到:
x =x0+mt;
y=y0+nt;
z=z0+pt;
对于四面体,计算三角形两条中线的交点,得到三角形重心。

  • 三角形的重心就是三边中线的交点。线段的重心就是线段的中点。

  • 平行四边形的重心就是其两条对角线的交点,也是两对对边中点连线的交点。

  • 平行六面体的重心就是其四条对角线的交点,也是六对对棱中点连线的交点,也是四对对面重心连线的交点。

  • 圆的重心就是圆心,球的重心就是球心。

  • 锥体的重心是顶点与底面重心连线的四等分点上最接近底面的一个。

  • 四面体的重心同时也是每个定点与对面重心连线的交点,也是每条棱与对棱中点确定平面的交点。

1.3空间直线与平面的交点

向量过几何体重心的直线,与几何体的各个平面会有交点。
3D数学–空间直线与平面的交点
三维空间快速判断线段与长方体相交算法?

2.在paraview论坛上发帖求助

How to associate the length of vector with the size of cells,When we draw the CellData vector flux on the corresponding XYZ coordinates?

如何将vector的长度与cells的尺寸关联,当当我们在相应的xyz坐标上绘制该矢量数据vector flux时?

在我们的vtk文件中,有一个CellData flux,flux是一个vector包含三个坐标值(x,y,z)
在这里插入图片描述

当我们在相应的xyz坐标上绘制该矢量数据vector flux时,使用“Glyph”过滤器在每个点生成箭头或其他Glyph几何图形,并将其可视化。
在这里插入图片描述

但是这个效果并不符合我们的要求,我们希望flux的箭头和element的几何尺寸关联,箭头长度 要根据向量和element相交的线段,去长度乘系数0.7~0.9

  • 我该怎么做?可以通过Paraview软件来设置吗?
  • 现在我通过C++计算出了vector flux 与 elements的交点,VTK文件中我应该怎样表示才能在Paraview正确显示?

参考答案:

如果我正确理解了你的问题,你可以使用“Python calculator”过滤器创建一个新的向量数组,该数组具有适当的长度(根据每个单元格大小)和适当的方向(根据通量数据)。下面是一个例子,如何创建一个新的向量数组,其中dx取决于单元体积,dy和dz是常量:

python calculator过滤器

3.C++生成vtp文件

已知线段两段的坐标,计算线段上一点的坐标
设:A(x1,y1),B(x2,y2),点P(x,y)分线段AB所成的比是λ,则:
x=[x1+λx2]/(1+λ)
y=[y1+λy2]/(1+λ)

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片