public void Test_Normalize() { var pt = new ArborPoint(3, 4); Assert.AreEqual(3.0f, pt.X); Assert.AreEqual(4.0f, pt.Y); pt = pt.Normalize(); Assert.AreEqual(3d / 5d, pt.X); Assert.AreEqual(4d / 5d, pt.Y); }
private void ApplySprings() { for (int i = 0, edgesCount = fEdges.Count; i < edgesCount; i++) { ArborEdge edge = fEdges[i]; ArborPoint s = edge.Target.Pt.Sub(edge.Source.Pt); ArborPoint r = s.Normalize(); double q = edge.Stiffness * (edge.Length - s.Magnitude()); edge.Source.ApplyForce(r.Mul(q * -0.5f)); edge.Target.ApplyForce(r.Mul(q * 0.5f)); } }