static void Logo(Factory2D F, float X, float Y, float Height, float Fatness) { const double AngleOffset = 0.09; Ellipse2D LeftUpper = F.CreateEllipse(X, Y - Fatness / 2 + Height, 0, 0, Height / 2, Height, -3 * Math.PI / 2, -Math.PI / 2); Ellipse2D RightUpperUpper = F.CreateEllipse(X, Y - Fatness / 2 + Height, 0, 0, Height / 2 - Fatness, Height - Fatness, Math.PI / 2, Math.PI - AngleOffset); Ellipse2D RightUpperLower = F.CreateEllipse(X, Y - Fatness / 2 + Height, 0, 0, Height / 2 - Fatness, Height - Fatness, Math.PI + AngleOffset, 3 * Math.PI / 2); Ellipse2D LeftLower = F.CreateEllipse(X, Y + Fatness / 2 - Height, 0, 0, Height / 2 - Fatness, Height - Fatness, 3 * Math.PI / 2, Math.PI / 2); Ellipse2D RightLower = F.CreateEllipse(X, Y + Fatness / 2 - Height, 0, 0, Height / 2, Height, 3 * Math.PI / 2, Math.PI / 2); LeftUpper.EndPoint = LeftLower.EndPoint; RightUpperLower.EndPoint = RightLower.EndPoint; Circle2D UpperCircle = F.CreateCircle(X, (Y + Height * 2) - Fatness, Fatness / 2, -Math.PI / 2, Math.PI / 2); UpperCircle.EndPoint = LeftUpper.StartPoint; UpperCircle.StartPoint = RightUpperUpper.StartPoint; Circle2D LowerCircle = F.CreateCircle(X, (Y - Height * 2) + Fatness, Fatness / 2, Math.PI / 2, -Math.PI / 2); LowerCircle.StartPoint = LeftLower.StartPoint; LowerCircle.EndPoint = RightLower.StartPoint; Point2D BarLowerStart = RightUpperLower.StartPoint; Line2D BarLower = F.CreateLine(BarLowerStart.GetPos().X, BarLowerStart.GetPos().Y, BarLowerStart.GetPos().X + Height / 2, BarLowerStart.GetPos().Y); BarLower.StartPoint = BarLowerStart; Point2D BarUpperStart = RightUpperUpper.EndPoint; Line2D BarUpper = F.CreateLine(BarUpperStart.GetPos().X, BarUpperStart.GetPos().Y, BarUpperStart.GetPos().X + Height / 2, BarUpperStart.GetPos().Y); BarUpper.StartPoint = BarUpperStart; double UpperX = BarUpper.EndPoint.GetPos().X; double UpperY = BarUpper.EndPoint.GetPos().Y; double LowerY = BarLower.EndPoint.GetPos().Y; double R = (UpperY - LowerY) / 2; Circle2D BarCircle = F.CreateCircle(UpperX, LowerY + R, R, -Math.PI / 2, Math.PI / 2); BarCircle.EndPoint = BarUpper.EndPoint; BarCircle.StartPoint = BarLower.EndPoint; }
static void Logo(Factory2D F, float X, float Y, float Height, float Fatness) { const double AngleOffset = 0.09; Ellipse2D LeftUpper = F.CreateEllipse(X, Y - Fatness / 2 + Height, 0, 0, Height / 2, Height, -3 * Math.PI / 2, -Math.PI / 2); Ellipse2D RightUpperUpper = F.CreateEllipse(X, Y - Fatness / 2 + Height, 0, 0, Height / 2 - Fatness, Height - Fatness, Math.PI / 2, Math.PI - AngleOffset); Ellipse2D RightUpperLower = F.CreateEllipse(X, Y - Fatness / 2 + Height, 0, 0, Height / 2 - Fatness, Height - Fatness, Math.PI + AngleOffset, 3 * Math.PI / 2); Ellipse2D LeftLower = F.CreateEllipse(X, Y + Fatness / 2 - Height, 0, 0, Height / 2 - Fatness, Height - Fatness, 3 * Math.PI / 2, Math.PI / 2); Ellipse2D RightLower = F.CreateEllipse(X, Y + Fatness / 2 - Height, 0, 0, Height / 2, Height, 3 * Math.PI / 2, Math.PI / 2); LeftUpper.EndPoint = LeftLower.EndPoint; RightUpperLower.EndPoint = RightLower.EndPoint; Circle2D UpperCircle = F.CreateCircle(X, (Y + Height * 2) - Fatness, Fatness / 2, -Math.PI / 2, Math.PI / 2); UpperCircle.EndPoint = LeftUpper.StartPoint; UpperCircle.StartPoint = RightUpperUpper.StartPoint; Circle2D LowerCircle = F.CreateCircle(X, (Y - Height * 2) + Fatness, Fatness / 2, Math.PI / 2, -Math.PI / 2); LowerCircle.StartPoint = LeftLower.StartPoint; LowerCircle.EndPoint = RightLower.StartPoint; Point2D BarLowerStart = RightUpperLower.StartPoint; Line2D BarLower = F.CreateLine(BarLowerStart.GetPos().X, BarLowerStart.GetPos().Y, BarLowerStart.GetPos().X + Height / 2, BarLowerStart.GetPos().Y); BarLower.StartPoint = BarLowerStart; Point2D BarUpperStart = RightUpperUpper.EndPoint; Line2D BarUpper = F.CreateLine(BarUpperStart.GetPos().X, BarUpperStart.GetPos().Y, BarUpperStart.GetPos().X + Height / 2, BarUpperStart.GetPos().Y); BarUpper.StartPoint = BarUpperStart; double UpperX = BarUpper.EndPoint.GetPos().X; double UpperY = BarUpper.EndPoint.GetPos().Y; double LowerY = BarLower.EndPoint.GetPos().Y; double R = (UpperY - LowerY) / 2; Circle2D BarCircle = F.CreateCircle(UpperX, LowerY + R, R, -Math.PI / 2, Math.PI / 2); BarCircle.EndPoint = BarUpper.EndPoint; BarCircle.StartPoint = BarLower.EndPoint; }