void NormalizePoint(int i) { PolygonElement polygon1 = m_PolygonElement1; PolygonElement polygon2 = m_PolygonElement2; double d = MathHelper.Distance(polygon1.GetXn(i), polygon1.GetYn(i), polygon2.GetXn(i), polygon2.GetYn(i)); double k = 20 * System.Math.Sqrt(2) * 3; if (d > k) { polygon2.SetXn(i, polygon1.GetXn(i) + (polygon2.GetXn(i) - polygon1.GetXn(i)) * k / d); polygon2.SetYn(i, polygon1.GetYn(i) + (polygon2.GetYn(i) - polygon1.GetYn(i)) * k / d); } }
protected override void OnTick(double delta) { if (m_IsAnimated) { PolygonElement polygon1 = m_PolygonElement1; PolygonElement polygon2 = m_PolygonElement2; double x, y; for (int i = 0; i < 6; i++) { x = polygon1.GetXn(i); y = polygon1.GetYn(i); MovePoint(ref x, ref y, ref m_dx1[i], ref m_dy1[i]); polygon1.SetXn(i, x); polygon1.SetYn(i, y); x = polygon2.GetXn(i); y = polygon2.GetYn(i); MovePoint(ref x, ref y, ref m_dx2[i], ref m_dy2[i]); polygon2.SetXn(i, x); polygon2.SetYn(i, y); NormalizePoint(i); } Refresh(); } base.OnTick(delta); }
protected override void OnTick(double delta) { if (m_IsAnimated) { PolygonElement polygon = m_PolygonElement; double x, y; for (int i = 0; i < 6; i++) { x = polygon.GetXn(i); y = polygon.GetYn(i); MovePoint(ref x, ref y, ref m_dx[i], ref m_dy[i]); polygon.SetXn(i, x); polygon.SetYn(i, y); } Refresh(); } base.OnTick(delta); }