精华内容
下载资源
问答
  • Raphael绘制流程图箭头的方法

    千次阅读 2018-03-12 14:06:06
    原项目使用的Raphael绘制流程图,要求能自定义箭头的样式和颜色,结合从网上找到的一些资料进行修改。 1.使用Raphael自带的箭头样式,代码与箭头的样式对应如下:var c = r.path("M10 10L100 10").attr({ 'arrow-...

    原项目使用的Raphael绘制流程图,要求能自定义箭头的样式和颜色,结合从网上找到的一些资料进行修改。
    1.使用Raphael自带的箭头样式,代码与箭头的样式对应如下:

    var c = r.path("M10 10L100 10").attr({
                'arrow-end': 'classic-wide-long',
                stroke: "#0000ff",
                "stroke-width": 2
            });
             var c = r.path("M10 50L100 50").attr({
                'arrow-end': 'block-wide-long',
                stroke: "#ff0000",
                "stroke-width": 2
            });
            var c = r.path("M10 100L100 100").attr({
                'arrow-end': 'open-wide-long',
                stroke: "#ff00ff",
                "stroke-width": 2
            });
            var c = r.path("M10 150L100 150").attr({
                'arrow-end': 'oval-wide-long',
                stroke: "#0f0",
                "stroke-width": 2
            });
            var c = r.path("M10 200L100 200").attr({
                'arrow-end': 'diamond-wide-long',
                stroke: "#000",
                "stroke-width": 2
            });

    得到的效果:
    这里写图片描述

    箭头的样式是通过”arrow-end”设置的,改变颜色在画布svg包含的defs元素中添加设置好颜色的箭头对象marker。

    <marker id="raphael-marker-endclassic-red" markerHeight="5" markerWidth="5" orient="auto" refX="2.5" refY="2.5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"><use xmlns:xlink="" xlink:href="#raphael-marker-classic" transform="rotate(180 2.5 2.5) scale(1,1)" stroke-width="1.0000" fill="red" stroke="none" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></use></marker>  
      <marker id="raphael-marker-endclassic-green" markerHeight="5" markerWidth="5" orient="auto" refX="2.5" refY="2.5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"><use xmlns:xlink="" xlink:href="#raphael-marker-classic" transform="rotate(180 2.5 2.5) scale(1,1)" stroke-width="1.0000" fill="green" stroke="none" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></use></marker> 

    强制修改连线箭头的方法:

    line1.node.attributes["marker-end"].value = "url(#raphael-marker-endclassic-" + "red" + ")";  
    
    line2.node.attributes["marker-end"].value = "url(#raphael-marker-endclassic-" + "green" + ")";

    完成后的效果:
    这里写图片描述

    箭头颜色修改参考文章:
    http://blog.csdn.net/qq_34838434/article/details/53372168
    箭头样式属性参考文章:
    https://www.cnblogs.com/stephenykk/p/3564000.html

    2.官方文档给出的绘制箭头方法,箭头绘制完成的效果与设置'arrow-end': 'open-wide-long'为一致
    1)先绘制节点,并为节点添加样式属性

    //绘制节点
    var shapes = [
                r.rect(190, 100, 60, 40, 4),
                r.rect(290, 80, 60, 40, 4),
                r.rect(290, 180, 60, 40, 4),
                r.rect(450, 100, 60, 40, 4)
    ];
    //定位节点上的文字
    $("#test1").offset({ top: 100 + 10, left: 190 + 10 });
    $("#test2").offset({ top: 80 + 10, left: 290 + 10 });
    $("#test3").offset({ top: 180 + 10, left: 290 + 10 });
    $("#test4").offset({ top: 100 + 10, left: 450 + 10 });
    //为节点添加样式和事件,并且绘制节点之间的箭头
    for (var i = 0, ii = shapes.length; i < ii; i++) {
        var color = Raphael.getColor();
        shapes[i].attr({ fill: color, stroke: color, "fill-opacity": 0, "stroke-width": 2, cursor: "move" });
        shapes[i].id = i + 1;
        shapes[i].drag(move, dragger, up);
        shapes[i].dblclick(function () { alert(this.id) })
    }

    2)确定连线节点的起始点值

    function getStartEnd(obj1, obj2) {
         var bb1 = obj1.getBBox(),
             bb2 = obj2.getBBox();
         var p = [
                 { x: bb1.x + bb1.width / 2, y: bb1.y - 1 },
                 { x: bb1.x + bb1.width / 2, y: bb1.y + bb1.height + 1 },
                 { x: bb1.x - 1, y: bb1.y + bb1.height / 2 },
                 { x: bb1.x + bb1.width + 1, y: bb1.y + bb1.height / 2 },
                 { x: bb2.x + bb2.width / 2, y: bb2.y - 1 },
                 { x: bb2.x + bb2.width / 2, y: bb2.y + bb2.height + 1 },
                 { x: bb2.x - 1, y: bb2.y + bb2.height / 2 },
                 { x: bb2.x + bb2.width + 1, y: bb2.y + bb2.height / 2 }
         ];
         var d = {}, dis = [];
         for (var i = 0; i < 4; i++) {
             for (var j = 4; j < 8; j++) {
                 var dx = Math.abs(p[i].x - p[j].x),
                     dy = Math.abs(p[i].y - p[j].y);
                 if (
                      (i == j - 4) ||
                      (((i != 3 && j != 6) || p[i].x < p[j].x) &&
                      ((i != 2 && j != 7) || p[i].x > p[j].x) &&
                      ((i != 0 && j != 5) || p[i].y > p[j].y) &&
                      ((i != 1 && j != 4) || p[i].y < p[j].y))
                    ) {
                     dis.push(dx + dy);
                     d[dis[dis.length - 1]] = [i, j];
                 }
             }
         }
         if (dis.length == 0) {
             var res = [0, 4];
         } else {
             res = d[Math.min.apply(Math, dis)];
         }
         var result = {};
         result.start = {};
         result.end = {};
         result.start.x = p[res[0]].x;
         result.start.y = p[res[0]].y;
         result.end.x = p[res[1]].x;
         result.end.y = p[res[1]].y;
         return result;
     }

    3)根据确定的连线的起始点计算连线与箭头的值

     function getArr(x1, y1, x2, y2, size) {
          var angle = Raphael.angle(x1, y1, x2, y2);//得到两点之间的角度
          var a45 = Raphael.rad(angle - 45);//角度转换成弧度
          var a45m = Raphael.rad(angle + 45);
          var x2a = x2 + Math.cos(a45) * size;
          var y2a = y2 + Math.sin(a45) * size;
          var x2b = x2 + Math.cos(a45m) * size;
          var y2b = y2 + Math.sin(a45m) * size;
          var result = ["M", x1, y1, "L", x2, y2, "L", x2a, y2a, "M", x2, y2, "L", x2b, y2b];
          return result;
       }

    4)定义绘制连线的方法

    Raphael.fn.drawArr = function (obj) {
         var point = getStartEnd(obj.obj1, obj.obj2);
         var path1 = getArr(point.start.x, point.start.y, point.end.x, point.end.y, 8);
         if (obj.arrPath) {
              obj.arrPath.attr({ path: path1});
          } else {
              obj.arrPath = this.path(path1);
          }
              return obj;
          };

    5)进行连线的绘制

    connections.push(r.drawArr({ obj1: shapes[0], obj2: shapes[1] }));
    connections.push(r.drawArr({ obj1: shapes[1], obj2: shapes[2] }));
    connections.push(r.drawArr({ obj1: shapes[2], obj2: shapes[3] }));

    6)流程图绘制完成的效果

    这里写图片描述

    流程绘制参考文章:
    https://www.cnblogs.com/liulun/archive/2012/05/18/2507472.html

    3.在官方文档给出的绘制箭头方法上进行调整,得到的效果与设置'arrow-end': 'block-wide-long'时一致。
    1)具体代码为修改计算连线值的方法,计算出的值不变,调整连接箭头值的顺序,得到不同的箭头样式

    function getArr(x1, y1, x2, y2, size) {
        var angle = Raphael.angle(x1, y1, x2, y2);//得到两点之间的角度
        var a45 = Raphael.rad(angle - 45);//角度转换成弧度
        var a45m = Raphael.rad(angle + 45);
        var x2a = x2 + Math.cos(a45) * size;
        var y2a = y2 + Math.sin(a45) * size;
        var x2b = x2 + Math.cos(a45m) * size;
        var y2b = y2 + Math.sin(a45m) * size;
        var result = ["M", x1, y1, "L", x2, y2, "M", x2, y2, "L", x2b, y2b, "L", x2a, y2a, "Z"];
        return result;
    }

    2)修改绘制连线的方法,添加属性fill,使箭头的颜色样式与所要求的效果一致

     Raphael.fn.drawArr = function (obj) {
        var point = getStartEnd(obj.obj1, obj.obj2);
        var path1 = getArr(point.start.x, point.start.y, point.end.x, point.end.y, 8);
        if (obj.arrPath) {
            obj.arrPath.attr({ path: path1});
        } else {
            obj.arrPath = this.path(path1);
        }
        obj.arrPath.attr({fill: "#000000" });
        return obj;
    };

    3)绘制完成的效果:

    这里写图片描述
    补充:

    Raphael属性相关的文章:
    http://www.cnblogs.com/idealer3d/p/Instant_RaphaelJS_Starter.html

    展开全文
  • Visio 流程图箭头 设置

    千次阅读 2019-07-31 19:17:39
    1、点击选中连接线 2、点击线条下拉三角符号,然后选择箭头,如下 3、设置好箭头后,还可以使用格式刷来格式化其他没加箭头的,箭头会加到你拖动连接结束的地方 【句子能量】也许你的原创句子也不错哦,学习工作之余...

    1、点击选中连接线

    2、点击线条下拉三角符号,然后选择箭头,如下

    3、设置好箭头后,还可以使用格式刷来格式化其他没加箭头的,箭头会加到你拖动连接结束的地方

     

    【句子能量】也许你的原创句子也不错哦,学习工作之余来发上一两句吧,说不定还能得到奖励哦!

     

    展开全文
  • 流程图中的箭头标志

    2018-01-24 16:29:00
    在制作流程图的页面中,有很多的辅助操作工具,能够使其内容条理更加清晰,其中使用率比较高的就是“箭头”,它有很多种类型,我们一起来看看吧! 1.运行迅捷流程图制作软件,没有流程图软件的朋友可以去下载一下 ...

    在制作流程图的页面中,有很多的辅助操作工具,能够使其内容条理更加清晰,其中使用率比较高的就是“箭头”,它有很多种类型,我们一起来看看吧!
    1.运行迅捷流程图制作软件,没有流程图软件的朋友可以去下载一下

    2.进入页面后,添加需要进行编辑的文件

    3.文件添加好之后,进入操作页面,在页面的左侧可以看见有一排功能操作选项

    4.在最下面的就是箭头的选项,点击后,下面就会出现很多的箭头类型选项

    5.选择你喜欢的,或是适合的添加到页面中就可以了

    转载于:https://my.oschina.net/u/3695270/blog/1612456

    展开全文
  • 在visio中绘制流程图如何绘制箭头

    千次阅读 2020-05-14 22:07:13
    在visio中绘制流程图如何绘制箭头? 1.首先点击开始菜单工具栏中的连接线。 2.找到要连接的两端,鼠标左键按住,进行首尾连接。 -----------------------→ 3.保持连线的选中状态,选择开始菜单工具栏中的...

    在visio中绘制流程图如何绘制箭头?

    •         1.首先点击开始菜单工具栏中的连接线。

    •         2.找到要连接的两端,鼠标左键按住,进行首尾连接。

    -----------------------→

    •         3.保持连线的选中状态,选择开始菜单工具栏中的线条。

    •         4.选择下拉菜单中的箭头,选择使用的箭头,选中即可。

     

     

    展开全文
  • 转载:https://jingyan.baidu.com/article/73c3ce2841be3ee50343d92a.html 传送门
  • 什么是流程图?顾名思义,流程图就是一张汇总了流动的行程的图纸。为什么是流动的行程呢?我们的日程安排不是提前准备好的吗?但是俗话说的好,计划赶不上变化。我们永远不知道下一秒会发生什么,会不会影响到每个...
  • 问题:ubuntu16.04上下载vscode,使用插件Markdown Preview Enhanced画流程图,预览时发现没有显示箭头连接线 解决:在设置选项中搜索markdown mermaid theme,将主题修改即可,如下 设置后效果如下 ...
  • 流程图

    千次阅读 2018-09-12 17:59:11
    流程图一般由圆角矩形、矩形、菱形、平行四边形、箭头组成。 二、流程图图形的作用 流程图一般是由圆角矩形来表示开始与结束,用矩形表示行动方案,普通工作环节使用,菱形表示问题判断或判定环节,平行四边形...
  • 有两张表,下面各列用线链接在一起,线是带箭头的怎么把这箭头去掉。
  • 数据流程图 状态图 流程图

    万次阅读 多人点赞 2018-04-23 14:43:38
    数据流程图 状态图 流程图 数据流程图 数据流程图(DFD)提供了通过系统的数据流的图形表示。它逻辑上显示了我们的系统进程和外部接口或数据存储交换了哪些信息,但是它没有明确显示信息交换的时间或顺序。 ...
  • 微调箭头方法: ctrl加方向键微调如:Ctrl+↑ 在流程图箭头上写文字的方法: 在框之间加文本框(文本框在“插入”菜单中),输入文字,再点击文本框边沿,将"颜色与线条/线条/颜色"框内选择选择"无线条颜色"....
  • 如何用Word做流程图

    千次阅读 2019-02-02 10:02:22
    如何用Word做流程图
  • 流程图怎么画

    万次阅读 多人点赞 2017-12-20 21:14:49
    流程图一般由由圆角矩形、矩形、菱形、平行四边形、箭头组成。 作用 流程图一般都是用圆角矩形来表示“开始”与“结束”,用矩形表示行动方案、普通工作环节,菱形表示判断,平行四边形表示输入输出,箭头表示工作...
  • 泳道流程图:跨职能流程图

    千次阅读 2019-06-18 22:40:18
    泳道流程图也是一种特殊的图表,可以展示商业过程间的关系,同时还能够展示为过程负责的执行者(比如说部门)。 泳道流程图本现了价值活动之间的逻辑关系,还明确地表明每个价值活动的责任。 先看一看泳道流程...
  • 最近需要写些文档,于是乎又捡起了Visio2013,不过,打开的时候,已经授权码过期了,网上搜了一个,有需要的可自行下载: ...KMSpico_setup_visio2013pojie工具.zip: 如果以前你安装过一个,那个KMSpico...看下中,我
  • 流程图符号及流程图的例子

    万次阅读 2017-06-27 10:03:05
    介绍常见的流程图符号及流程图的例子。  本章例1 - 1的算法的流程图如图1 - 2所示。本章例1 - 2的算法的流程图如图1 - 3所示。 在流程图中,判断框左边的流程线表示判断条件为真时的流程,右边的流程线...
  • Asp.Net实现JS前台带箭头流程图方法总结!(持续更新中) 一、返回前台json格式 json5 = "[{\"Id\":2259,\"Name\":\"高中\"},{\"Id\":2259,\"tName\":\"初中\"}]";
  • Markdown流程图

    千次阅读 2018-01-28 19:02:39
    基本流程图 方向调整 状态标记 箭头高亮 基本流程图 Markdown常用的元素有以下几种: start end operation condition inputoutput subroutine 以简单的登录场景为例,流程图代码和效果如下: start=...
  • 如何用Word做流程图

    千次阅读 2008-01-22 13:49:00
    如何用Word做流程图?在“绘图”工具栏上单击“自选图形/基本形状”,可以选择“矩形”或者“圆角矩形”绘制矩形图形制作文本;用“绘图”工具栏上的“箭头”或者“自选图形/箭头总汇”选择箭头。 然后排列好图形,...
  • 那想要绘制思维导图的话,我们一般会借助一些软件来帮我们快速完成绘制,小编下面会以迅捷流程图制作软件为例来和大家说说应该怎么绘制。 一、绘制主题 在绘制思维导图之前,我们就应该想好,整个思维导图的主题是...
  • 什么是流程图流程图就是通过图表和文字绘制出一个流动过程的图。流程图广泛应用于各个行业,尤其是IT业、建筑业和数字统计行业。在学习中,也常会利用流程图帮助记忆,比如树状图、模型图等。 一、流程图的类型 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 39,943
精华内容 15,977
关键字:

如何做流程图箭头