mxgraph 线 坐标 重叠-mxgraph看下自定义 线样式代码 加急!

问题描述

mxgraph看下自定义 线样式代码 加急!

这段代码怎么改坐标,使线不重叠
graph.stylesheet.getDefaultEdgeStyle()[mxConstants.STYLE_EDGE] =
mxEdgeStyle.MyStyle = function(state, source, target, points, result)
{
var view = state.view;
var pt = (points != null && points.length > 0) ? points[0] : null;
var pts = state.absolutePoints;
var p0 = pts[0];
var pe = pts[pts.length-1];

        if (pt != null)
        {
            pt = view.transformControlPoint(state, pt);
        }

        if (p0 != null)
        {
            source = new mxCellState();
            source.x = p0.x;
            source.y = p0.y;
        }

        if (pe != null)
        {
            target = new mxCellState();
            target.x = pe.x;
            target.y = pe.y;
        }

        if (source != null && target != null)
        {
            var l = Math.max(source.x, target.x);
            var r = Math.min(source.x + source.width,
                             target.x + target.width);

            var x = (pt != null) ? pt.x : r + (l - r) / 2;

            var y1 = view.getRoutingCenterY(source);
            var y2 = view.getRoutingCenterY(target);

            if (pt != null)
            {
                if (pt.y >= source.y && pt.y <= source.y + source.height)
                {
                    y1 = pt.y;
                }

                if (pt.y >= target.y && pt.y <= target.y + target.height)
                {
                    y2 = pt.y;
                }
            }

            if (!mxUtils.contains(target, x, y1) &&
                !mxUtils.contains(source, x, y1))
            {
                result.push(new mxPoint(x,  y1));
            }

            if (!mxUtils.contains(target, x, y2) &&
                !mxUtils.contains(source, x, y2))
            {
                result.push(new mxPoint(x, y2));
            }

            if (result.length == 1)
            {
                if (pt != null)
                {
                    if (!mxUtils.contains(target, x, pt.y) &&
                        !mxUtils.contains(source, x, pt.y))
                    {
                        result.push(new mxPoint(x, pt.y));
                    }
                }
                else
                {
                    var t = Math.max(source.y, target.y);
                    var b = Math.min(source.y + source.height,
                             target.y + target.height);

                    result.push(new mxPoint(x, t + (b - t) / 2));
                }
            }
        }
    };
时间: 2024-10-27 11:27:38

mxgraph 线 坐标 重叠-mxgraph看下自定义 线样式代码 加急!的相关文章

mxgraph 线样式 代码-mxgraph看下自定义 线样式代码

问题描述 mxgraph看下自定义 线样式代码 帮我看下代码.如何设置线不重叠 graph.stylesheet.getDefaultEdgeStyle()[mxConstants.STYLE_EDGE] = mxEdgeStyle.MyStyle = function(state, source, target, points, result) { if (source != null && target != null) { var pt = new mxPoint(target.ge

javascript-麻烦看下这段JQ代码,有一些困惑

问题描述 麻烦看下这段JQ代码,有一些困惑 $(function(){ var myScroll2=null; function menuInit(){ var _menuScroll = $("".menuScroll""); var _menuScroll_size = _menuScroll.find(""li"").length;//获取 li长度 var liWidth = 0; $("".men

ajax-求大神帮我看下为啥这段代码一直走error?

问题描述 求大神帮我看下为啥这段代码一直走error? 解决方案 跨域的服务器进行跨域支持了吗? 120.27.130.65这个服务器要支持你的跨域,才能使用jsonp,否则将不能回调到success函数. 跨域的本质是利用script,img等支持跨域的标签来对非同域名的链接来进行访问. 所以如果想要跨域成功,那么需要在调用方支持跨域. 我自己负责的很多项目跨域是自己写的实现,所以调用跨域的方法都得使用我封装的形式,否则默认是支持不了跨域的. jQuery的jsonp也一样,没有服务器是天然支

雅虎财经数据-麻烦各位大神给看下下面这段代码,运行不起来。请帮忙看下是什么原因(是在Python上运行的)

问题描述 麻烦各位大神给看下下面这段代码,运行不起来.请帮忙看下是什么原因(是在Python上运行的) from matplotlib.finance import quotes historical_yahoo from datetime import date import pandas as pd today=date.today() start=(today.year-1,today.month,today.day) quotes=quotes_historical_yahoo('AXP

javascript-麻烦看下这段JQ代码,一点性能问题

问题描述 麻烦看下这段JQ代码,一点性能问题 <head> <style type="text/css"> .scroll_div{width:1000px; height:370px; margin:0 auto; padding:10px;} .scroll_div .pic{width:820px; height:370px; overflow:hidden; position:relative; float:left;} .scroll_div .pic

return-大神帮忙看下这一小段代码 是不是有问题?

问题描述 大神帮忙看下这一小段代码 是不是有问题? def getIviOsTotal (Integer iviOsTotal) { IntravitrealInjection ivi = IntravitrealInjection.get(iviOsTotal) if (ivi != null){ def os = IntravitrealInjection.findWhere(injectionsTotal: ivi, eye: Eye.LEFT_EYE) return os.getInje

类-谁能帮我看下下面这段代码,多项式乘法和+=操作运行不了,求助啊,到底错在哪了

问题描述 谁能帮我看下下面这段代码,多项式乘法和+=操作运行不了,求助啊,到底错在哪了 #include #include using namespace std; class Polynomial { double *p_coefs; int *p_exps, num; public: Polynomial(); Polynomial(double coefs[], int exps[], int size);//系数数组.指数数组和项数 Polynomial(const Polynomial

js下拉菜单样式代码

提示:您可以先修改部分代码再运行 js下拉菜单样式代码 Home Single Level Dropdown Dropdown one Dropdown 1.1 Dropdown 1.2 Dropdown 1.3 Dropdown 1.4 Dropdown 1.5 Dropdown 1.6 Dropdown two Dropdown 2.1 Dropdown 2.2 Dropdown 2.3 Dropdown 2.4 Dropdown 2.5 Dropdown three Dropdown fo

我想问下通讯簿里想加一个查询 该怎么样添加 下面是我的代码 有谁能帮我看下 需要具体的代码 谢啦

问题描述 importjava.awt.*;importjava.awt.event.*;publicclassPhoneBookextendsWindowAdapterimplementsActionListener,ItemListener{Framef;//框架窗口TextFieldtf1,tf2;//文本行ListI;//列表框Buttonb1,b2;//按钮publicPhoneBook()//构造窗口界面{f=newFrame("电话簿");//创建框架,默认布局是Bord