首页 > 其他分享 >根据点坐标X,Y,Z和方向向量Vx,Vy,Vz绘制射线簇

根据点坐标X,Y,Z和方向向量Vx,Vy,Vz绘制射线簇

时间:2024-09-06 21:18:42浏览次数:11  
标签:射线 paraview Apply Vx Vy Vz 数据 过滤器 向量

根据点坐标X,Y,Z和方向向量Vx,Vy,Vz绘制射线簇

1. 数据导入

paraview可以直接导入以逗号分隔的txt或csv数据,但无法自动识别,需要使用过滤器转为paraview可以操作的数组。

以下是以空格分隔的txt数据为例,paraview 5.11.1版本。数据的存储格式如下图所示,以空格隔开。x,y,z为点的空间坐标,vx,vy,vz为方向向量在三个方向上的分量。

image

这种形式的存储格式需要改为以英文逗号“,”隔开的形式,可以直接改后缀为csv然后用excel分列:

image​​image

如果对于数据精度有要求的记得在分好列后将所有数据单元格格式小数位数设置成所需的位数,不然关闭后再次打开数据会变成2位小数的(可能是默认2位小数)!!!!

image

在paraview中打开文件,然后通过CSV Reader导入分列后的csv数据,再在左侧点Apply导入数据,如果数据量比较大(百万级)的话可能要等几秒。

image

2. 应用过滤器

将x,y,z,vx,vy,vz各列数据与paraview中的点关联起来。

选中刚导入Pipeline Browser中的RyasData1.csv数据,然后右键如下所示操作,选择Table To Points过滤器。

image

然后在过滤器中设置对应的xyz数据后Apply,在spreadsheetview1中会出现设置好的TableToPoint1。

imageimage

选中TableToPoint1右键如下选择calculator,将Result array name改为Vectors(这个名字随意),并在下一行输入计算式:
vx*iHat+vy*jHat+vz*kHat​,这里的iHat,jHat,kHat是单位向量ijk。然后Apply。

imageimage

3. 绘制射线簇

然后选中Calculator1应用过滤器Glyph,设置Glyph Type为Line,Scale Factor为0.1(这个是过点线段的长度,单位:米),然后Apply。然后在左侧的Coloring中将Solid Color改为Vectors,就可以在RenderView1中看到线段簇了。

image​​image

image​​image

但此时这些线段簇还不是以这些点为起点的射线,而是以这些点为中点的线段(左右各0.05m),需要再应用Clip过滤器,将这些线段簇从点位置截断,从而变成从点出发的射线。这里的点都是在一个平面(Y=0.79 m)上,所以操作比较简单。将截断面的法向量改为(0,1,0),然后Apply。取消勾选Show Plane可以隐藏截断面。

image​​image

imageimage

这些射线簇是以向量的Vetors的Magnitude标注颜色的,实际上向量长度都为1,但由于数据精度问题小数点后面七八位数据不一致就会出现这种情况。可以通过以下步骤改为相同颜色的射线簇。

image

在左侧的Corloring中选中Edit color map,然后在弹出的Color Map Editor中选择色图的点,然后按enter进入点的颜色编辑界面选择颜色,选中点后通过左“←”右“→”键可以跳转到其他点,将所有的点颜色设置成一样后,所有射线变为相同颜色。

image​​image

参考资料:

  1. Paraview学习笔记(2) - 我是球啊 - 博客园
  2. Display points and normals from a plain text (x y z nx ny nz) file

标签:射线,paraview,Apply,Vx,Vy,Vz,数据,过滤器,向量
From: https://www.cnblogs.com/blogLYP/p/18400974/according-to-point-coordinates-x-y-z-and-direct

相关文章

  • 了解VxLAN,学习静态/分布式VxLAN的配置
    VxLAN(VirtualExtensibleLAN)是一种网络虚拟化技术,用于在物理网络上创建虚拟网络。它主要用于在大规模数据中心环境中实现虚拟化网络的隔离和扩展。VxLAN通过在现有的IP网络上封装以太网帧来实现这一目标,从而使虚拟机(VM)能够跨物理主机和数据中心进行通信。VxLAN的基本概念VxLANHe......
  • vxe-table 自定义单元格样式
    <template><div><vxe-tableborderclass="mytable-style":header-cell-class-name="headerCellClassName":row-class-name="rowClassName":cell-class-name="cellClassName&quo......
  • 《魔兽世界》divxdecoder.dll丢失怎么办?轻松解决指南
    在深入艾泽拉斯大陆的冒险旅途中,每一位玩家都希望拥有流畅且无碍的游戏体验。然而,技术问题偶尔会像突如其来的部落突袭一样打断我们的探索。其中,“divxdecoder.dll丢失”错误便是不少玩家可能遇到的一个小障碍。别担心,本文将为您提供一套简单易行的解决方案。divxdecoder.dll......
  • 具有 AI 加速的MIMX9332AVTXMAB、MIMX9332CVTXMAB、MIMX9332XVTXMAB、MIMX9332XVVXMAB
    i.MX93应用处理器通过集成的EdgeLock®SecureEnclave提供高效的机器学习(ML)加速和高级安全性,以支持高能效的边缘计算。i.MX93应用处理器是i.MX产品组合中首款集成可扩展Arm®Cortex®-A55内核的处理器,为基于Linux®的边缘应用和ArmEthos™-U65microNPU带来......
  • 探索Groovy的Elvis操作符及其在Java中的替代方案
    在编程的世界里,我们经常需要处理变量的默认值问题,尤其是在变量可能为null的情况下。Groovy语言提供了一种优雅的方式来处理这种情况,那就是Elvis操作符。本文将探讨Elvis操作符的用法,并展示如何在Java中实现类似的功能。Elvis操作符简介Elvis操作符(?:)是Groovy语言中的一种......
  • 【Unity热门插件】Curvy Splines:Unity中的曲线艺术
    ......
  • vxe-grid expandContent自定义展开的高度,以及展开的内容不要多于父vxe-grid会出现水平
    1、先上一张图,展示下效果:VxeTablev4.6默认是自适应高度的,也就是说我们只要指定展开的内容的最小高度就可以了。这样就可以保证展开的高度不会来回切换,并且我们可以限制容器里的内容的高度来实现。<stylelang="less"scoped>.sub-table{min-height:350px;......
  • SSE和AVX指令基本使用
    SSE/AVX指令属于Intrinsics函数,由编译器在编译时直接在调用处插入代码,避免了函数调用的额外开销。但是与inline函数不同,Intrinsics函数的代码由编译器提供,能够更高效地使用机器指令进行优化调整。一般的函数是在库中,IntrinsicFunction内嵌在编译器中(builtintothe......
  • 跟《经济学人》学英文:2024年08月24日这期 What to make of America’s topsy-turvy ec
    WhattomakeofAmerica’stopsy-turvyeconomyDon’tpanicjustyettopsy-turvy:颠倒的;混乱的;乱七八糟的;makeof:理解;认为;看待Makeof:这里的“makeof”意思是如何理解或解释某事物。结合上下文,这句话的意思是,如何理解或解释美国颠倒混乱的经济状况。例句:Idon......
  • 快手 内推码:TYORVzmsw 秋招 应届生/实习生 真正本人内推 已有多人在我内推之后,接连顺
    内推码:TYORVzmsw校园招聘岗位列表:https://campus.kuaishou.cn/#/campus/jobs?code=TYORVzmsw真正的本人内部推荐!已有多人在我内推之后,接连顺利通过了HR筛选、用人部门筛选、面试!快手员工来浅浅发一波内推码~  快手的校园招聘和实习生招聘开始了!大家快来投递简历,欢迎随......