using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Data; using System.Windows; using System.Windows.Media; namespace _20230724_MBJC_upperpc.Common { public class BottomCenterYConverter : IMultiValueConverter { public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { Point StartPoint = new Point(); ; Point FirstCorner = new Point(); ; Point SecondCorner = new Point(); ; Point EndPoint = new Point(); ; if (int.Parse(parameter.ToString()) == 1 || int.Parse(parameter.ToString()) == 2) { StartPoint = new Point((double)values[0] + (double)values[1] / 2, (double)values[3] + (double)values[2] / 2); FirstCorner = new Point((double)values[0] + (double)values[1] / 2, ((double)values[3] + (double)values[6] + (double)values[7]) / 2); SecondCorner = new Point((double)values[4] + (double)values[5] / 2, ((double)values[3] + (double)values[6] + (double)values[7]) / 2); EndPoint = new Point((double)values[4] + (double)values[5] / 2, (double)values[6] / 2 + (double)values[7]); } else if (int.Parse(parameter.ToString()) == 3 || int.Parse(parameter.ToString()) == 4) { StartPoint = new Point((double)values[0], (double)values[3] + (double)values[2] / 2); FirstCorner = new Point(((double)values[0] + (double)values[4] + (double)values[5]) / 2, (double)values[3] + (double)values[2] / 2); SecondCorner = new Point(((double)values[0] + (double)values[4] + (double)values[5]) / 2, (double)values[7] + (double)values[6] / 2); EndPoint = new Point((double)values[4] + (double)values[5], (double)values[7] + (double)values[6] / 2); } else if (int.Parse(parameter.ToString()) == 5 || int.Parse(parameter.ToString()) == 6) { StartPoint = new Point((double)values[0] + (double)values[1], (double)values[3] + (double)values[2] / 2); FirstCorner = new Point(((double)values[0] + (double)values[1] + (double)values[4]) / 2, (double)values[3] + (double)values[2] / 2); SecondCorner = new Point(((double)values[0] + (double)values[1] + (double)values[4]) / 2, (double)values[7] + (double)values[6] / 2); EndPoint = new Point((double)values[4], (double)values[7] + (double)values[6] / 2); } else if (int.Parse(parameter.ToString()) == 7 || int.Parse(parameter.ToString()) == 8) { StartPoint = new Point((double)values[0] + (double)values[1] / 2, (double)values[3] + (double)values[2]); FirstCorner = new Point((double)values[0] + (double)values[1] / 2, ((double)values[3] + (double)values[2] + (double)values[7]) / 2); SecondCorner = new Point((double)values[4] + (double)values[5] / 2, ((double)values[3] + (double)values[2] + (double)values[7]) / 2); EndPoint = new Point((double)values[4] + (double)values[5] / 2, (double)values[7]); } return new PointCollection { StartPoint, FirstCorner, SecondCorner, EndPoint }; //return new PointCollection { StartPoint, EndPoint }; } public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } }