public void drawExplose(Pen pen, Vec pos, double size, double proc) { const int DIR = 24; for (int i = 0; i < DIR; i++) { Vec dir = Vec.getDir(i, DIR, size); Vec p1 = dir * (0.8f + proc * 2); Vec p2 = dir * (1.2f + proc * 2); drawLine(pen, pos + p1, pos + p2); } }
internal void calcPos(Counter <OrderedPair <Node> > pairCounter) { if (!isCycle()) { mVecPair = mPair.map <Vec>(delegate(OrderedPair <Node> pair) { Vec delta = pair.mSecond.mPos - pair.mFirst.mPos; Vec vec = delta.norm(); double shift = (mShift - (pairCounter.get(mPair.getOrderedPair()) - 1) * 0.5f) * W; Vec pFirst = pair.mFirst.mPos + vec.rotate() * shift + vec * Node.mSize / 2; Vec pSecond = pair.mSecond.mPos + vec.rotate() * shift - vec * Node.mSize / 2; return(new OrderedPair <Vec>(pFirst, pSecond)); }); } else { Vec pos = mPair.mFirst.mPos + Vec.getDir(mShift, 3, W); mVecPair = new SwapPair <Vec>(pos, pos, false); } }