美文网首页
5.1 边的样式Router和Connector

5.1 边的样式Router和Connector

作者: skoll | 来源:发表于2022-01-07 15:53 被阅读0次

    router

    1 .路由,对vertices进一步做处理,正常应该是线经过点,很生硬的连起来,但是路由可以处理这些,返回处理后的点,必要的时候添加新的点
    2 .只要有以下参数

    1 .normal:默认路由,原样返回路径点
    2 .orth:将所有线段返回成水平或者垂直的线段:在路径上添加一些额外的点,使得边的每一条线段都是水平或者垂直正交
    3 .manhattan:只能正交路由,自动避开路径上的其他障碍节点
    4 .oneSide:生成一个严格的三段路由,从起始节点的side测开始,经过中间段,再从终止节点的side测结束路由.
    5 .metro:水平,垂直,倾斜角线段组成,类似地铁轨道图.并且自动避开路径上的障碍.
    6 .er:实体关系由Z字形的斜角线段组成,常用来表示实体图之间的连线
    

    orth参数

    1 .padding:设置锚点距离转角的最小距离
    2 .

    oneSide参数

    1 .使用或者的时候,不需要添加额外的vertices,否则路由效果非常差
    2 .side:路由的起始方向,也就是要从节点的哪个方向出去,上下左右.
    3 .padding:拐点距离出发节点的最小距离,不能一出去就拐吧


    image.png

    manhattan

    1 .水平或者垂直的线段组成,自动避开路径上的其他节点
    2 .step:路由算法的步长,补偿越小,计算量越大.推荐使用画布的网格大小,graph.options.grid.size
    3 .maximumLoops:计算的最大迭代次数,达到最大迭代次数的时候,使用候补路由
    4 .maxDirectionCHange:最大旋转角
    5 .excludeTerminals:忽略起始或者终止节点.忽略后不进行障碍计算
    6 .excludeShapes:除了起始和结束节点,其他的忽略节点,忽略后不进行障碍物计算
    7 .excludeHiddenNodes:是否忽略隐藏的节点,忽略隐藏节点后不参与障碍物计算
    8 .startDirections 从开始节点的哪个方向开始路由:top,left,right,bottom
    9 .endDirections 从结束节点的哪些方向结束路由

    metro参数

    image.png

    1 .但是这种连线看起来就很乱,不用看了

    er参数

    1 .不能避开节点有点坑
    2 .offset:路由第一点和最后一个点与节点之间的距离.可以看成是第一个发生拐弯的地方
    3 .min:路由第一个点和最后一个点与节点之间的最小距离
    4 .direction:路由方向.没有的时候会自动选择最优方向"T","B","L","R".怎么参数不统一,有的时候是全称,有的时候是简写

    connector

    1 .链接器将路由router返回的点加工为path元素的d属性,决定了边渲染到画布后的样式.
    2 .连接器种类

    1 .normal:简单连接器.用直线连接起点,路由点和终点
    2 .smooth:平滑连接器,用三次贝塞尔去享连接起点,路由点和终点
    3 .rounded:圆角连接器,用直线连接起点,路有点,终点,并在线段处连用圆弧链接
    4 .jumpover:跳线连接线,用直线连接起点,路由和终点,并在边与边的交叉处用跳线符号链接
    

    normal参数

    1 .raw:boolean.是否返回一个Path对象,默认值为false返回序列化后的字符串
    2 .系统的默认连接器,将起点,路由点,终点通过直线按顺序连接
    3 .

    orth参数

    1 .正交路由,改路由在路径上添加一些额外的点,会保证边的每一条线段都水平或垂直正交
    2 .padding:设置触发点距离锚点转角的最小距离

    vertical?: number
          horizontal?: number
          left?: number
          top?: number
          right?: number
          bottom?: number
    
    router:{
      name:"orth",
      args:{
        padding:{
        left:50
    }
    }
    }
    

    oneSide参数

    1 .正交路由的特殊版本,生成一个严格的三段路由,从起始节点的side开始,经过中间段,再从终止节点的side侧结束路由.
    2 .实例代码

    router:{
      name:"oneSide",
      args:{
          side:"right"
      }
    }
    

    3 .现在是从右边开始发出和接收


    image.png

    manhattan参数

    1 .orth的智能版本.由水平或者垂直的正交线段组成,并自动避开路径上的其他节点(障碍)

    1 .step:路由步长算法,值越小,越消耗性能,但是越准确,推荐使用画布的格子大小
    2 .maximumLoops:最大迭代次数
    3 .maxDirectionChange:最大旋转角度
    4 .excludeShapes:[]设置可以忽略指定形状的节点,忽略后不参与障碍物计算
    5 .excludeTerminals:设置忽略开始和目标节点.
    6 .excludeHiddenNodes:忽略隐藏的节点,忽略后不参与障碍物的计算
    7 .startDirections:支持开始路由从哪些方向发出
    8 .endDirections:支持结束路由从哪些方向结束
    

    metro

    1 .manhattan的一个变种,有点像地铁轨道图,最大倾斜角是45度


    image.png

    ER图参数

    1 .实体关系路由"er"由Z字形的斜角端组成


    image.png

    2 .offset:路由第一个点和最后一个点和节点之间的关系.就是距离节点多远开始拐弯.这里感觉好多节点都有这个属性,但是呢,名字还不一样..
    3 .min:路由的第一个点和最后一个点与节点之间的最小距离
    4 .路由方向:路由出发的方向.这里的值也是和之前的不一样,"T","L","B","R","H","V",之前的都是小写全称,这里变成了大写首字母了.

    connector

    1 .normal:简单连接器,用直线连接点,路由点,和终点
    2 .smooth:平滑连接器.通过三次贝塞尔曲线去连接起点,路由点和终点


    image.png
    1 .这里好像还可以用来做贝塞尔曲线编辑器.之前还用了一个canvas的库,现在好像这里就可以 做,
    
    2 .raw:可以决定是否返回一个Path对象,返回的是一个序列化之后的字符串
    3 .direction:"H|V"保持水平连接或者垂直连接,不设置会根据起点和终点动态计算
    

    3 .rounded:线段连接处使用圆弧连接

    1 .radius:圆弧的半径
    2 .raw:是否返回一个path对象
    

    jumpover跳线连接器

    1 .

    自定义连接器

    1 .X6.Path()这个的文档好像也找不到啊

    相关文章

      网友评论

          本文标题:5.1 边的样式Router和Connector

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