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个点,解这个方程就可以。
1.2空间几何体的重心
空间直线方程的几种常见形式
已知两个空间点,可以得到空间直线的方向向量v=(m,n,p)。
根据空间直线的点向式方程,得到:
x =x0+mt;
y=y0+nt;
z=z0+pt;
对于四面体,计算三角形两条中线的交点,得到三角形重心。
-
三角形的重心就是三边中线的交点。线段的重心就是线段的中点。
-
平行四边形的重心就是其两条对角线的交点,也是两对对边中点连线的交点。
-
平行六面体的重心就是其四条对角线的交点,也是六对对棱中点连线的交点,也是四对对面重心连线的交点。
-
圆的重心就是圆心,球的重心就是球心。
-
锥体的重心是顶点与底面重心连线的四等分点上最接近底面的一个。
-
四面体的重心同时也是每个定点与对面重心连线的交点,也是每条棱与对棱中点确定平面的交点。
1.3空间直线与平面的交点
向量过几何体重心的直线,与几何体的各个平面会有交点。
3D数学–空间直线与平面的交点
三维空间快速判断线段与长方体相交算法?
2.在paraview论坛上发帖求助
如何将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是常量:
3.C++生成vtp文件
已知线段两段的坐标,计算线段上一点的坐标
设:A(x1,y1),B(x2,y2),点P(x,y)分线段AB所成的比是λ,则:
x=[x1+λx2]/(1+λ)
y=[y1+λy2]/(1+λ)
暂无评论内容