private void drawSingleDreieck(int i) { Polygon polygon = new Polygon(); polygon.StrokeThickness = 3; polygon.Stroke = System.Windows.Media.Brushes.Red; cDreiecke Dreieck = meineDreiecke[i]; System.Windows.Point tempPoint1 = new System.Windows.Point(Dreieck.AX, Dreieck.AY); System.Windows.Point tempPoint2 = new System.Windows.Point(Dreieck.BX, Dreieck.BY); System.Windows.Point tempPoint3 = new System.Windows.Point(Dreieck.CX, Dreieck.CY); polygon.Points = new PointCollection() { tempPoint1, tempPoint2, tempPoint3 }; //Canvas.SetZIndex(polygon, 2); CanvasDr.Children.Add(polygon); }
public bool istGleich(cDreiecke tempDreieck) { PointF tempDreieckP1 = new PointF(tempDreieck.AX, tempDreieck.AY); PointF tempDreieckP2 = new PointF(tempDreieck.BX, tempDreieck.BY); PointF tempDreieckP3 = new PointF(tempDreieck.CX, tempDreieck.CY); PointF dreieckP1 = new PointF(AX, AY); PointF dreieckP2 = new PointF(BX, BY); PointF dreieckP3 = new PointF(CX, CY); if (dreieckP1 == tempDreieckP1 || dreieckP1 == tempDreieckP2 || dreieckP1 == tempDreieckP3) { if (dreieckP2 == tempDreieckP2 || dreieckP2 == tempDreieckP1 || dreieckP2 == tempDreieckP3) { if (dreieckP3 == tempDreieckP3 || dreieckP3 == tempDreieckP2 || dreieckP3 == tempDreieckP1) { return(true); } } } return(false); }
private void miAuswerten_Click(object sender, RoutedEventArgs e) { foreach (cStrecken strecke1 in meineStrecken) { foreach (cStrecken strecke2 in meineStrecken) { if (strecke1.MyId != strecke2.MyId) { bool line_intersect; bool segments_intersect; PointF intersection; PointF close_p1; PointF close_p2; FindIntersection(strecke1, strecke2, out line_intersect, out segments_intersect, out intersection, out close_p1, out close_p2); if (segments_intersect) { cPunkte tempPoint = new cPunkte(intersection.X, intersection.Y, strecke1.MyId, strecke2.MyId); bool dupe = false; foreach (cPunkte point in meinePunkte) { if (point.SpX1 == tempPoint.SpX1 && point.SpY1 == tempPoint.SpY1) { dupe = true; } } if (!dupe) { meinePunkte.Add(tempPoint); } } } } } foreach (cPunkte punkt1 in meinePunkte) { foreach (cPunkte punkt2 in meinePunkte) { foreach (cPunkte punkt3 in meinePunkte) { if (punkt1.MyId != punkt2.MyId && punkt1.MyId != punkt3.MyId && punkt2.MyId != punkt3.MyId) { bool dreick; FindDreiecke(punkt1, punkt2, punkt3, out dreick); if (dreick) { cDreiecke tempDreieck = new cDreiecke(punkt1.SpX1, punkt1.SpY1, punkt2.SpX1, punkt2.SpY1, punkt3.SpX1, punkt3.SpY1); bool dupe = false; //PointF tempDreieckP1 = new PointF(tempDreieck.AX, tempDreieck.AY); //PointF tempDreieckP2 = new PointF(tempDreieck.BX, tempDreieck.BY); //PointF tempDreieckP3 = new PointF(tempDreieck.CX, tempDreieck.CY); //foreach (cDreiecke Dreieck in meineDreiecke) //{ // PointF dreieckP1 = new PointF(Dreieck.AX, Dreieck.AY); // PointF dreieckP2 = new PointF(Dreieck.BX, Dreieck.BY); // PointF dreieckP3 = new PointF(Dreieck.CX, Dreieck.CY); // if (dreieckP1 == tempDreieckP1 || dreieckP1 == tempDreieckP2 || dreieckP1 == tempDreieckP3) // { // if (dreieckP2 == tempDreieckP2 || dreieckP2 == tempDreieckP1 || dreieckP2 == tempDreieckP3) // { // if (dreieckP3 == tempDreieckP3 || dreieckP3 == tempDreieckP2 || dreieckP3 == tempDreieckP1) // { // dupe = true; // } // } // } //} foreach (cDreiecke Dreieck in meineDreiecke) { if (Dreieck.istGleich(tempDreieck)) { dupe = true; break; } } if (!dupe) { meineDreiecke.Add(tempDreieck); } } } } } } }