美文网首页
2020-06-25delaunay 三角剖分解读

2020-06-25delaunay 三角剖分解读

作者: 锅炉工的自我修养 | 来源:发表于2020-06-27 22:49 被阅读0次

对mesh2d-master 源码进行阅读

新的函数使用

    1. cellfun: python map for cell
    1. sort(a,2): 按行排序
    1. [C,ia,ic]=unique(a,'rows'),
    • a(ia)=c;C(ic)=a;


      image.png
      image.png
      image.png
      image.png
image.png

function:

1. cdtbal0:

-1.

    1. deltri2:
    1. exist


      image.png
    1. delaunayTriangulation(vert,conn) ;
      image.png
image.png
image.png
    1. max


      image.png
image.png
    1. delaunay2 并且对OCTAVE进行优化
    • 调用产生非约束节点
    • delaunay 函数产生 tri
      image.png
      image.png

如何把contourc的数组数据提取

1. contourc需要注意什么?

filt默认是零

  1. 矩阵不是矢量
  2. contourc的位置坐标需要是矢量
    1. 判断是否读取到最后一列
    1. numc=cmat(2,ipos),获取数据维度
      level=cmat(1,ipos)
    1. 获取第一个数据的位置信息
      ppts=[cmat(1,ipos+1:ipos+numc)',...
      cmat(2,ipos+1:ipos+numc)'];
    1. 获取每一列的最大值和最小值

获得整个等高线点的最值位置。

    1. 获得x和y的长度范围
    1. 设置默认带默认参数的数值
    1. 判断位置点的第一列是否等于最后一列

tips:判断位置是否闭合

    1. 形成闭合的边界索引:
      enew=[(1:numc-1)',(2:numc)';numc,1];
    1. 非闭合情况。
      enew=[(1:numc)',(2:numc-)'];
    1. 第一次获取节点信息
      enew(edge_new)+size(node,1
      )
      node=[node;ppts];将获得的登高线的点作为node
      edge=[edge;enew];将第一次默认升序获得边界加入边界数组。
    1. 对ipos进行叠加
      ipos=ipos+numc+1;
    1. 这里通过计算每一条等高线的位置,获得每一条等高线的位置


      image.png

在什么都不会情况下,不要想创新,需要的是认真的学习,提高自己的基准


如何使用edge和vertice绘图

  • 1, patch:
    patch('vertices',node,'faces',edge)


    image.png
    1. plot([node(edge(:,1),1),node(edge(:,2),1)],[node(edge(:,1),2),node(edge(:,2),2)],'g-')


      image.png

getnan2

doc

    1. purpose:把通过nan分割的polygon用PSLG表示
    1. input:
  • nans:位置坐标,定点顺序按照连接顺序指定,其中通过nan分割不同的多边形。
  • filt:将轴向距离小于filter的polygon在输出中删除
  • 3, output:
  • node:vertices
  • edge:edge index

导入数据

    1. 传入参数
    1. 数据类型及大小检查

解析隔离数据

    1. find(isnan(data(:,1)));确定x中出现nan的位置
    1. 对于无nan的处理吧办法
      nvec=[nvec;size(data,1)],即整个polygon的的定点数目
    1. 对于存在nan,且nan不在最后的情况
      nvec=[nvec;size(data,1)]

获得每一分割点的位置以及整个data的定点的数目,即每一个polygon结束的位置

    1. stop=nvec指定每个polygon的最后一个位置下标
    1. 截取一个polygon:
      pnew=data(next:stop-1,1:2);
    1. 集散该polygon的大小范围pdel
    1. 如果pnew非空,切存在一个维度尺寸满足filt要求。则对多边形边界进行编号
      [(1:nnew-1)',(2:nnew)';nnew,1
      修改之后的polygon边界
    1. 分别获取定点和edge的index范围
    1. 将polygon的位置和边界索引信息放入node和edge
    1. 对node和edge的位置进行更新。
    1. 对next进行跟新,读取下一个polygon
    1. node和edge是除最后一列以外的所有行数据

相关文章

  • 2020-06-25delaunay 三角剖分解读

    对mesh2d-master 源码进行阅读 新的函数使用 cellfun: python map for cell...

  • 三维网格化

    三角剖分算法(delaunay) - DiuFly的博客 - CSDN博客 算法丨带内外边界的三角剖分算法(Del...

  • LeetCode #1039 Minimum Score Tri

    1039 Minimum Score Triangulation of Polygon 多边形三角剖分的最低得分 ...

  • Delaunay三角剖分

    Delaunay三角剖分是1934年发明的将空间点连接为三角形,使得所有三角形中最小角最大的一个技术。 如果你熟悉...

  • Delaunay三角剖分学习笔记

      最近计算几何课程要求交一个结课论文,借这个机会,我就认真地学习了下Delaunay三角剖分。Delaunay三...

  • 寻找包含点k的以点集P中的三个点为顶点的最小三角形

    问题描述 通过Lawson算法实现 Delaunay 三角剖分中有这么一个步骤: 就比如说,点集P内有五个点A、B...

  • 「树链剖分」点权 边权模板

    学习树链剖分我看过以下博客:树链剖分原理和实现树链剖分整理总结 知道大概之后,我以为要多加深记忆的地方:对于每一个...

  • 调节像素偏移

    调节像素偏移主要是用来处理瘦脸大眼、调节下巴等处理。前面我们做了图像三角剖分和重建工作,得到了整张人脸的索引。接下...

  • Opencv:用鼠标点即获取相应位置坐标

    之前做三角剖分,需要提前获取点集,就写了一个鼠标点击图片来获取图片上相应位置坐标信息的小程序,可以用在预操作中。程...

  • 树链剖分

    适用题目特征 修改树上两点之间的路径上/子树中所有点的值。查询树上两点之间的路径上/子树中节点权值的和/极值/其它...

网友评论

      本文标题:2020-06-25delaunay 三角剖分解读

      本文链接:https://www.haomeiwen.com/subject/klfsfktx.html