Files
StructureHelper/Models/PrimitiveDefinition/EllipseDefinition.cs
NickAppLab 60eb406cbe Init commit
2022-06-13 21:24:13 +05:00

104 lines
2.7 KiB
C#

using System;
using System.Windows.Media;
namespace StructureHelper
{
public class EllipseDefinition : PrimitiveDefinitionBase
{
private double diameter, showedDiameter, ellipseX, ellipseY;
public double Diameter
{
get => diameter;
set
{
diameter = value;
ShowedDiameter = Math.Round(value, 2);
OnPropertyChanged();
}
}
public double ShowedDiameter
{
get => showedDiameter;
set
{
showedDiameter = value;
OnPropertyChanged();
}
}
public double EllipseX
{
get => ellipseX;
set
{
ellipseX = value;
OnPropertyChanged();
}
}
public double EllipseY
{
get => ellipseY;
set
{
ellipseY = value;
OnPropertyChanged();
}
}
private double showedEllipseX, showedEllipseY;
private double initialEllipseX, initialEllipseY;
public double ShowedEllipseX
{
get => showedEllipseX;
set
{
showedEllipseX = value;
EllipseX = value + initialEllipseX - Diameter / 2;
OnPropertyChanged(nameof(EllipseX));
OnPropertyChanged();
}
}
public double ShowedEllipseY
{
get => showedEllipseY;
set
{
showedEllipseY = value;
EllipseY = -value + initialEllipseY - Diameter / 2;
OnPropertyChanged(nameof(ShowedEllipseY));
OnPropertyChanged();
}
}
private double square;
public double Square
{
get => square;
set
{
square = value;
Diameter = Math.Sqrt(4 * value / Math.PI);
OnPropertyChanged(nameof(Diameter));
OnPropertyChanged();
}
}
public EllipseDefinition(double square, double ellipseX, double ellipseY)
{
Square = square;
initialEllipseX = ellipseX;
initialEllipseY = ellipseY;
ShowedEllipseX = 0;
ShowedEllipseY = 0;
var randomR = new Random().Next(150, 255);
var randomG = new Random().Next(0, 255);
var randomB = new Random().Next(30, 130);
var color = Color.FromRgb((byte)randomR, (byte)randomG, (byte)randomB);
Brush = new SolidColorBrush(color);
}
}
}