Browse Source

Share the same arc size struct

pull/7914/head
robloo 4 years ago
parent
commit
7eb6cb31e7
  1. 11
      src/Avalonia.Controls/Shapes/Rectangle.cs

11
src/Avalonia.Controls/Shapes/Rectangle.cs

@ -63,7 +63,8 @@ namespace Avalonia.Controls.Shapes
{
var rect = new Rect(Bounds.Size).Deflate(StrokeThickness / 2);
var geometry = new StreamGeometry();
double piOver2 = 1.57079633; // 90 deg to rad
var arcSize = new Size(x, y);
var piOver2 = 1.57079633; // 90 deg to rad
using (StreamGeometryContext context = geometry.Open())
{
@ -89,7 +90,7 @@ namespace Avalonia.Controls.Shapes
context.LineTo(new Point(rect.Right - x, rect.Top));
context.ArcTo(
new Point(rect.Right, rect.Top + y),
new Size(x, y),
arcSize,
rotationAngle: piOver2,
isLargeArc: false,
SweepDirection.Clockwise);
@ -98,7 +99,7 @@ namespace Avalonia.Controls.Shapes
context.LineTo(new Point(rect.Right, rect.Bottom - y));
context.ArcTo(
new Point(rect.Right - x, rect.Bottom),
new Size(x, y),
arcSize,
rotationAngle: piOver2,
isLargeArc: false,
SweepDirection.Clockwise);
@ -107,7 +108,7 @@ namespace Avalonia.Controls.Shapes
context.LineTo(new Point(rect.Left + x, rect.Bottom));
context.ArcTo(
new Point(rect.Left, rect.Bottom - y),
new Size(x, y),
arcSize,
rotationAngle: piOver2,
isLargeArc: false,
SweepDirection.Clockwise);
@ -116,7 +117,7 @@ namespace Avalonia.Controls.Shapes
context.LineTo(new Point(rect.Left, rect.Top + y));
context.ArcTo(
new Point(rect.Left + x, rect.Top),
new Size(x, y),
arcSize,
rotationAngle: piOver2,
isLargeArc: false,
SweepDirection.Clockwise);

Loading…
Cancel
Save