Relationships almost working
This commit is contained in:
@@ -32,10 +32,16 @@ web2d.CurvedLine = new Class({
|
||||
},
|
||||
|
||||
setFrom : function(x, y) {
|
||||
$assert(!isNaN(x), "x must be defined");
|
||||
$assert(!isNaN(y), "y must be defined");
|
||||
|
||||
this._peer.setFrom(x, y);
|
||||
},
|
||||
|
||||
setTo : function(x, y) {
|
||||
$assert(!isNaN(x), "x must be defined");
|
||||
$assert(!isNaN(y), "y must be defined");
|
||||
|
||||
this._peer.setTo(x, y);
|
||||
},
|
||||
|
||||
|
@@ -63,31 +63,35 @@ web2d.peer.svg.ArrowPeer = new Class({
|
||||
|
||||
_redraw : function() {
|
||||
var x,y, xp, yp;
|
||||
if (this._controlPoint.y == 0)
|
||||
this._controlPoint.y = 1;
|
||||
var y0 = this._controlPoint.y;
|
||||
var x0 = this._controlPoint.x;
|
||||
var x2 = x0 + y0;
|
||||
var y2 = y0 - x0;
|
||||
var x3 = x0 - y0;
|
||||
var y3 = y0 + x0;
|
||||
var m = y2 / x2;
|
||||
var mp = y3 / x3;
|
||||
var l = 6;
|
||||
var pow = Math.pow;
|
||||
x = (x2 == 0 ? 0 : Math.sqrt(pow(l, 2) / (1 + pow(m, 2))));
|
||||
x *= Math.sign(x2);
|
||||
y = (x2 == 0 ? l * Math.sign(y2) : m * x);
|
||||
xp = (x3 == 0 ? 0 : Math.sqrt(pow(l, 2) / (1 + pow(mp, 2))));
|
||||
xp *= Math.sign(x3);
|
||||
yp = (x3 == 0 ? l * Math.sign(y3) : mp * xp);
|
||||
if ($defined(this._fromPoint.x) && $defined(this._fromPoint.y) && $defined(this._controlPoint.x) && $defined(this._controlPoint.y)) {
|
||||
|
||||
var path = "M" + this._fromPoint.x + "," + this._fromPoint.y + " "
|
||||
+ "L" + (x + this._fromPoint.x) + "," + (y + this._fromPoint.y)
|
||||
+ "M" + this._fromPoint.x + "," + this._fromPoint.y + " "
|
||||
+ "L" + (xp + this._fromPoint.x) + "," + (yp + this._fromPoint.y)
|
||||
;
|
||||
this._native.setAttribute("d", path);
|
||||
if (this._controlPoint.y == 0)
|
||||
this._controlPoint.y = 1;
|
||||
|
||||
var y0 = this._controlPoint.y;
|
||||
var x0 = this._controlPoint.x;
|
||||
var x2 = x0 + y0;
|
||||
var y2 = y0 - x0;
|
||||
var x3 = x0 - y0;
|
||||
var y3 = y0 + x0;
|
||||
var m = y2 / x2;
|
||||
var mp = y3 / x3;
|
||||
var l = 6;
|
||||
var pow = Math.pow;
|
||||
x = (x2 == 0 ? 0 : Math.sqrt(pow(l, 2) / (1 + pow(m, 2))));
|
||||
x *= Math.sign(x2);
|
||||
y = (x2 == 0 ? l * Math.sign(y2) : m * x);
|
||||
xp = (x3 == 0 ? 0 : Math.sqrt(pow(l, 2) / (1 + pow(mp, 2))));
|
||||
xp *= Math.sign(x3);
|
||||
yp = (x3 == 0 ? l * Math.sign(y3) : mp * xp);
|
||||
|
||||
var path = "M" + this._fromPoint.x + "," + this._fromPoint.y + " "
|
||||
+ "L" + (x + this._fromPoint.x) + "," + (y + this._fromPoint.y)
|
||||
+ "M" + this._fromPoint.x + "," + this._fromPoint.y + " "
|
||||
+ "L" + (xp + this._fromPoint.x) + "," + (yp + this._fromPoint.y)
|
||||
;
|
||||
this._native.setAttribute("d", path);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
Reference in New Issue
Block a user