using System.Collections.Generic;
using System.Collections;
public partial class MainWindow : Window
public List<double> p1 = new List<double>();
public List<double> p2 = new List<double>();
public List<double> p3 = new List<double>();
public List<double> p4 = new List<double>();
public List<double> p5 = new List<double>();
public List<double> p6 = new List<double>();
List<double> L1 = new List<double>();
List<double> L2 = new List<double>();
List<double> L3 = new List<double>();
List<double> L4 = new List<double>();
List<double> L5 = new List<double>();
List<double> L6 = new List<double>();
List<double> IFset1 = new List<double>();
List<double> IFset2 = new List<double>();
List<double> IFset3 = new List<double>();
List<double> IFset4 = new List<double>();
List<double> IFset5 = new List<double>();
List<double> IFset6 = new List<double>();
double[] WBangles = new double[] { 93.53971118, 93.53964323, 93.5397030, 85.23634635 };
splitangles(93.53971118, 93.53964323, 93.5397030, 85.23634635);
double[] x = new double[4] { 120.2294, 168.3211, 79.9269, 39.8022 };
double[] y = new double[6] { 168, 168, 32.4541, 0, 0, 0 };
double[] WBstartx = new double[4] { 23.7523, 31.1753, 41.5673, 46.502 };
double[] WBstarty = new double[4] { 1.75, 121.75, 289.75, 369.5244 };
double[] WBendx = new double[4] { 31.1753, 41.5673, 46.502, 43.1966 };
double[] WBendy = new double[4] { 121.75, 289.75, 369.5244, 409.1891 };
List<double> dt3 = new List<double>();
if (addvalue[0] == addvalue[1] && addvalue[1] == addvalue[2] && addvalue[2] == addvalue[3])
x[0] = x[0] + x[1] + x[2] + x[3];
x[1] = 0; x[2] = 0; x[3] = 0;
postvalues(WBstartx[0], WBstarty[0], WBendx[3], WBendy[3], t);
if (addvalue[0] == addvalue[1] && addvalue[1] == addvalue[2] && addvalue[2] != addvalue[3])
x[0] = x[0] + x[1] + x[2];
rt = 168 + 168 + 32.4541;
postvalues(WBstartx[0], WBstarty[0], WBendx[2], WBendy[2], t);
addvalue[1] = addvalue[3];
if (addvalue[1] == addvalue[2] && addvalue[2] == addvalue[3])
x[1] = x[1] + x[2] + x[3];
if (addvalue[0] == addvalue[1])
if (addvalue[1] == addvalue[2])
if (addvalue[2] == addvalue[3])
double t4 = x.Sum() - y.Sum();
if (t2 > t1) Console.WriteLine("IF can't be bigger than WB.");
List<double>[] r = new List<double>[]{new List<double>(), new List<double>(), new List<double>(),
new List<double>(), new List<double>(), new List<double>(),
new List<double>(), new List<double>()};
for (int i = 0; i < x.Length; i++)
for (int j = i + 1; j < y.Length; j++)
Console.WriteLine("r[i]->", r[i].ToString());
else if (x[i] > y[i] + y[j])
y[j] = y[i] + y[j] - x[i];
for (int i = 0; i < r.Length; i++)
L1 = new List<double>(r[0]);
L2 = new List<double>(r[1]);
L3 = new List<double>(r[2]);
L4 = new List<double>(r[3]);
L5 = new List<double>(r[4]);
L6 = new List<double>(r[5]);
L1.RemoveAll(k => k == 0);
L2.RemoveAll(k => k == 0);
L3.RemoveAll(k => k == 0);
L4.RemoveAll(k => k == 0);
L5.RemoveAll(k => k == 0);
foreach (var sub in L1) IFset1.Add(sub);
foreach (var sub in L2) IFset2.Add(sub);
foreach (var sub in L3) IFset3.Add(sub);
foreach (var sub in L4) IFset4.Add(sub);
foreach (var sub in L5) IFset5.Add(sub);
foreach (var sub in L6) IFset6.Add(sub);
List<string> IFlenstr = new List<string>();
foreach (var WBitem1 in L1)
IFlenstr.Add("IF" + WBitem1.ToString());
foreach (var WBitem2 in L2)
IFlenstr.Add("IF" + WBitem2.ToString());
foreach (var WBitem3 in L3)
IFlenstr.Add("IF" + WBitem3.ToString());
double IFXcoord = new double();
double IFYcoord = new double();
private void postvalues(double v1, double v2, double v3, double v4, double t)
IFXcoord = (v1 + t * (v3 - v1));
IFYcoord = (v2 + t * (v4 - v2));
public long firstValue { get; set; }
public long secondValue { get; set; }
private List<double> value = new List<double>();
private List<double> addvalue = new List<double>();
private void splitangles(double v1, double v2, double v3, double v4) {
foreach (var item in value)
var ty = Math.Truncate(100 * item) / 100;
public class myCultureComparer : IEqualityComparer
public CaseInsensitiveComparer myComparer;
public myCultureComparer()
myComparer = CaseInsensitiveComparer.DefaultInvariant;
public myCultureComparer(System.Globalization.CultureInfo myCulture)
myComparer = new CaseInsensitiveComparer(myCulture);
public new bool Equals(object x, object y)
if (myComparer.Compare(x, y) == 0)
public int GetHashCode(object obj)
return obj.ToString().ToLower().GetHashCode();