Beispiel #1
0
        float _diagonalSupport(Offset centersVector, _Diagonal diagonal)
        {
            Offset delta  = this._cornerFor(this.begin, diagonal.endId) - this._cornerFor(this.begin, diagonal.beginId);
            float  length = delta.distance;

            return(centersVector.dx * delta.dx / length + centersVector.dy * delta.dy / length);
        }
Beispiel #2
0
        void _initialize()
        {
            D.assert(this.begin != null);
            D.assert(this.end != null);
            Offset    centersVector = this.end.center - this.begin.center;
            _Diagonal diagonal      = ArcUtils._maxBy(ArcUtils._allDiagonals,
                                                      (_Diagonal d) => this._diagonalSupport(centersVector, d));

            this._beginArc = new MaterialPointArcTween(
                begin: this._cornerFor(this.begin, diagonal.beginId),
                end: this._cornerFor(this.end, diagonal.beginId));
            this._endArc = new MaterialPointArcTween(
                begin: this._cornerFor(this.begin, diagonal.endId),
                end: this._cornerFor(this.end, diagonal.endId));
            this._dirty = false;
        }