zoukankan      html  css  js  c++  java
  • Raphael绘制箭头arrow

    <span style="font-size:14px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>绘制箭头测试</title>
    <script src="7_5/jquery.min.js" ></script>
    <script src="7_5/jquery-ui.min.js" ></script>
    <script src="7_5/raphael.js" ></script>
    <script>
    var paper;
        $(function()
        {
            paper = Raphael("paper",500,500);
            var path = paper.path("M 50 60 80 130");
            var path_arrow = paper.path(drawArrow(path.id));//生成的每一块图形都拥有唯一标示的id
            //另外一个API自带的线的arrow-end属性在多数情况下试用
            //效果等同于生成path_arrow 示例: path.attr({'arrow-end':'classic-wide-long'})
        })
        /*
         * 自己绘制线段箭头
         */
    function drawArrow(line_id)
    {
        var size = 5;
        //analysis line
        var line = paper.getById(line_id);
        //get last points
        var length = line.attrs.path.length;
        var x1 = line.attrs.path[length-1][1];//单线段起点
        var y1 = line.attrs.path[length-1][2];//单线段起点
        var x2 = line.attrs.path[length-2][1];//单线段终点
        var y2 = line.attrs.path[length-2][2];//单线段终点
        //get last angle
        var angle = Raphael.angle(x1, y1, x2, y2);//API方法获取角度,原直线倾斜度
        var angle_45_one = Raphael.rad(angle - 45);//API方法转变为弧度
        var angle_45_two = Raphael.rad(angle + 45);//API方法转变为弧度
        //arrow points求出箭头的双向点
        var angle_x1 = x1 - Math.cos(angle_45_one) * size;
        var angle_y1 = y1 - Math.sin(angle_45_one) * size;
        var angle_x2 = x1 - Math.cos(angle_45_two) * size;
        var angle_y2 = y1 - Math.sin(angle_45_two) * size;
        //return
        var result = ["M",angle_x1,angle_y1, "L", x1,y1,"L",angle_x2, angle_y2];
        return result;
    }
    </script>
    
    </head>
    
    <body>
        <div id="paper">.
        </div>
    </body>
    </html>
    </span>



  • 相关阅读:
    java嵌套接口
    关于继承与多态
    重看Maven技术
    npm常用命令及参数总结
    vue.js和node.js的关系
    Invalid [xxx] in servlet mapping 、 <url-pattern>的匹配规则
    Caused by: java.sql.SQLSyntaxErrorException: Unknown column 'name' in 'field list'
    关于中文词云生成报错
    easygui安装过程
    将写好的python软件打包成程序
  • 原文地址:https://www.cnblogs.com/MedivhQ/p/3868766.html
Copyright © 2011-2022 走看看