private void Turn(object sender, EventArgs e) { alpha = 100; t += 0.005 * (back ? -1 : 1); if (t > 1) { back = true; } if (t < 0) { back = false; } p.Center = new Vector3() { x = Spline.BezierFunc(new List <double>() { p1.x, p3.x, p4.x, p2.x }, t), y = Spline.BezierFunc(new List <double>() { p1.y, p3.y, p4.y, p2.y }, t), z = Spline.BezierFunc(new List <double>() { p1.z, p3.z, p4.z, p2.z }, t) }; p.Turn.x += alpha * Math.Abs(p.Center.x / p.Center.Length); p.Turn.y += alpha * Math.Abs(p.Center.y / p.Center.Length); p.Turn.z += alpha * Math.Abs(p.Center.z / p.Center.Length); Draw(); p.Turn.x -= alpha * Math.Abs(p.Center.x / p.Center.Length); p.Turn.y -= alpha * Math.Abs(p.Center.y / p.Center.Length); p.Turn.z -= alpha * Math.Abs(p.Center.z / p.Center.Length); }