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>



  • 相关阅读:
    字王20年
    [转]Birdfont 2.10 发布,字体编辑器
    vs2013编译boost库
    c++ 完成端口资料
    获取输入法输入内容及后选项的钩子
    unicode string和ansi string的转换函数及获取程序运行路径的代码
    c++实现输入法窗口自定义的代码
    在固定长方形里产生渐变
    监听某个div或其它标签的大小改变来执行相应的处理
    64位SqlServer通过链接服务器与32位oracle通讯
  • 原文地址:https://www.cnblogs.com/MedivhQ/p/3868766.html
Copyright © 2011-2022 走看看