public static Vector2 接続したノード同士はばねによって引き合う(this AlignParam align, Vector2 target, Vector2 other) { var k = align.relationK; var nl = align.relationNaturalLength; var l = (target - other).magnitude; var delta = l - nl; return(-(delta * k * (other - target).normalized)); }
public static Vector2 全ノードは互いに斥力が発生する(this AlignParam align, Vector2 target, Vector2 other) { var l = (other - target).magnitude; if (l < align.threshold) { return(-(other - target).normalized * ((align.threshold - l) * align.repulsivePower)); } return(Vector2.zero); }
public AlignSortStrategy(AlignParam alignParam, Vector2 originPosition) { this.alignParam = alignParam; this.originPosition = originPosition; }