Geoplanarnet
Eine einfache und small.net -Bibliothek für die computergestützte planare Geometrie.
Die primäre Funktion der Geoplanarnet -Bibliothek besteht darin, grundlegende geometrische Primitive wie Punkte, Linien, Dreiecke und Rechtecke im 2D -Raum zu manipulieren. Implementierte sowohl einfache (z. B. das Finden des Schnittpunkts zweier Linien) als auch komplexe (z. Alle Methoden haben Überladungen mit Standart .NET -Grafikklassen: Punkt, Punktf, Rekt, Rektf.
Weil die Lesbarkeit und Einfachheit des Code die Hauptziele waren, wurden Geschwindigkeit und Robustheit nicht mit erstklassigem Wert gelegt. Die globale Toleranzeigenschaft wird für die Proximity -Überprüfung verwendet, keine exakt robusten Algorithmen.
Pointgeo:
- Distanceto - Entfernung zwischen zwei Punkten;
- Distanzetolin - kürzeste Entfernung zur Linie erhalten;
- Distancetosegment - Kürzesten Abstand vom Punkt zum Segment erhalten;
- Distancetorekt - Kürzesten Abstand vom Punkt zum achseorientierten und durch willkürlichen Punkte Rechteck gegeben;
- Distancetocircle - Kürzesten Abstand vom Punkt zum Kreis;
- Distancetotriangle - Kürzeste Entfernung vom Punkt zum Dreieck erhalten;
- Distancetosincace - Kürzesten Abstand vom Punkt zur Oberfläche erhalten;
- HingocaStiosegle - prüfen Sie, ob der Punkt zum Segment gehört;
- HINGSSTOLINE - Überprüfen Sie, ob der Punkt zur Linie gehört;
- HINNETOCIRCLE - Überprüfen Sie, ob ein Punkt zu einem Kreis gehört;
- HINWEISENSTOCIRCLECER - Überprüfen Sie, ob der Punkt zum spezifischen Kreissektor gehört;
- HingocaSellipse - Überprüfen Sie, ob der Punkt zur achseparallelen Ellipse gehört;
- HingocaSellipsector - Überprüfen Sie, ob der Punkt zum spezifischen Achsen -Parallel -Ellipsesektor gehört;
- Hingohrstotriangle - prüfen, ob ein Punkt zu einem Dreieck gehört;
- HINNETORECT - Überprüfen Sie, ob der Punkt zum achse orientierten Rechteck gehört;
- Hingohrstourface - prüfen, ob ein Punkt an der Oberfläche gehört;
- GetCloSestPointonsegment - Finden Sie den Punkt auf dem Segment, das dem gegeben wird.
- GetCLOSESTPOINTONCIRCLE - Nächsten Punkt auf den Kreis zum angegebenen Punkt erhalten;
- GetCLOSESTPointonellipse - Nehmen Sie den Punkt auf der achseparallelen Ellipse zum angegebenen Punkt.
- GetCLOSESTPointonTiangle - Nächsten Punkt auf dem Dreieck zum angegebenen Punkt erhalten;
- GetCLOSESTPOINTONRECT - Nehmen Sie den Punkt auf die axisorientierte und geben Sie durch willkürliche Punkte rechteckig auf den angegebenen Punkt.
- GetrelatelocationsImple, GetRelattraination - Relativ zu einem Segment erhalten;
- GetRelattrainationTriangle - den Punktstandort relativ zum Dreieck erhalten;
- Getrelattractocationcircle - den Punktspeicherort relativ zum Kreis erhalten;
- GetRelattractocationellipse - den Punktspeicherort in Bezug auf die achseparallele Ellipse erhalten;
- GetRelattractocationRect - Relativ zu dem achseorientierten und durch willkürlichen Punkte rechteckigen Punkte erhalten;
- GetProjectionToline - Projektion von dem Punkt zur Linie erhalten;
- HaStroctionTosegment - Überprüfen Sie, ob der Punkt die Projektion auf das Segment hat.
- GetProjectionTosegment - Projektionspunkt für das Segment erhalten;
- Gleich - prüfen Sie, ob zwei Punkte gleich sind;
- IsCollinear - Überprüfen Sie, ob drei Punkte kollinear sind;
- Drehen - den Punkt um den Mittelpunkt drehen;
- GetVectorProduct - Berechnen Sie das Vektorprodukt zwischen Punkt und Segment;
- Getangle - Holen Sie sich den Axis -Gradwinkel zwischen zwei Punkten;
- Mindistancetocurvelin - Finden Sie den minimalen Abstand von einer Kurve bis zu einem gewissen Punkt.
Segmentgeo
- Länge - Segmentlänge erhalten;
- DistanzTopoint - Kürzeste Entfernung vom Punkt zum Segment erhalten;
- Distancetocircle - Kürzeste Abstand vom Segment zum Kreis erhalten;
- HasIntersection - Überprüfen Sie, ob zwei Segmente Kreuzung haben;
- FindIntersection - Finden Sie den Schnittpunkt zwischen zwei Segmenten;
- HassurfaceIntersection - Überprüfen Sie, ob die Kurvenlinie und das Segment Kreuzung aufweisen.
- FindSurfaceIntertersection - Finden Sie den Schnittpunkt zwischen dem Segment und der Oberfläche;
- HasRectintersection - Überprüfen Sie, ob das Rechteck und das Segment eine Kreuzung haben.
- FindRectintersection - Finden Sie den Schnittpunkt zwischen dem Rechteck und der Oberfläche;
- HasiangEntertersection - Überprüfen Sie, ob das Dreieck und das Segment Kreuzung haben.
- FindtriangeinNtersection - Finden Sie den Schnittpunkt zwischen dem Dreieck und der Oberfläche;
- HINGSSTOLINE - Überprüfen Sie, ob das Segment zur Linie gehört;
- Getxangleradians - Holen Sie sich den Segment -Neigungswinkel relativ zur X -Achse;
- Getangleradianer - Holen Sie sich einen Winkel zwischen zwei Segmenten. Einen Winkel zwischen zwei Segmenten mit dem gemeinsamen Punkt erhalten;
- ISBetWeweangles - Überprüfen Sie, ob das Segment zwischen Startwinkel und Endwinkel liegt.
- GetPointAwayFromStart - Nehmen Sie den Punkt aus dem Segment -Startpunkt in der angegebenen Entfernung ab.
- GetPointAwayFromend - Nehmen Sie den Punkt aus dem Segmentendpunkt auf der angegebenen Entfernung ab;
- Teilen - teilen Sie das Segment durch die Segmente in kleine Teile auf;
- Linearinterpolation - Lineare Interpolation für den Punkt auf dem Segment;
- LinearinterpolationBystep - Lineare Interpolation mit angegebenem Schritt;
- ISPARALLEL - Überprüfen Sie, ob zwei Segmente parallel sind;
- GetRelativationSocationTriangle - Nehmen Sie den Segmentort relativ zum Dreieck;
- CreateFromline - Schneiden Sie die Linie zum Segment nach x Grenzen;
- HasPointProjection - Überprüfen Sie, ob der Punkt die Projektion auf das Segment hat.
- GetPointProjection - Projektionspunkt für das Segment;
- Enthält - Überprüfen Sie, ob das Segment den Punkt enthält.
LineGeo
- Distancetocircle - Kürzeste Entfernung von der Linie zum Kreis erhalten;
- Entfernung - kürzeste Entfernung bis zum Punkt erhalten;
- HasIntersection - Überprüfen Sie, ob zwei Linien eine Kreuzung haben;
- FindIntersection - Finden Sie den Schnittpunkt zwischen zwei Linien;
- HascircLeintersection - Überprüfen Sie, ob die Linie und der Kreis eine Kreuzung haben.
- FindCircLeintersection - Schnittpunkt zwischen der Linie und dem Kreis finden;
- ISPARALLEL - Überprüfen Sie, ob zwei Zeilen parallel sind;
- Enthält - Überprüfen Sie, ob die Zeile den Punkt enthält;
- Enthält SEGMENT - Überprüfen Sie, ob die Linie das Segment enthält.
- Findslopekoef - Koeffizienten der Linie linearer Funktion k und b;
- CutByxBounds - Schneiden Sie die Linie nach x Grenzen zum Segment;
- GetRelativationCircle - Holen Sie sich den Linienstandort relativ zum Kreis.
- GetPointProjection - Projektion von der Linie zur Linie erhalten.
Curvelinegeo
- Länge - Kurvenlänge erhalten;
- Mindistancetopoint - Finden Sie den minimalen Abstand von der Kurve bis zu dem Punkt;
- Teilen - Teilen Sie die Kurvenlinie durch die Segmente in kleine Teile auf;
- HasIntersection - Überprüfen Sie, ob die Kurvenlinie und das Segment eine Kreuzung haben.
- FindIntersection - Finden Sie den Schnittpunkt zwischen dem Segment und der Oberfläche.
Circirego
- GetArea - Holen Sie sich den Kreisbereich;
- GetEdgepoint - Erhalten Sie den Punkt auf der Kreiskante im angegebenen Winkel.
- Getaabb - Holen Sie sich das Begrenzungsmittel des Kreises;
- Isorthogonal - Überprüfen Sie, ob zwei Kreise orthogonal sind;
- HaSoverlapping - Überprüfen Sie, ob sich zwei Kreise überlappten.
- GetRelattractocationLine - Relativ zum Kreis erhalten.
- Entfernung - den kürzesten Abstand vom Punkt zum Kreis erhalten;
- Distancetosegment - Holen Sie sich den kürzesten Abstand vom Segment zum Kreis;
- Distanzetolin - Holen Sie sich den kürzesten Abstand von der Linie zum Kreis;
- Distancetocircle - Kürzesten Abstand vom Kreis zum Kreis erhalten;
- Distancetotriangle - Kürzeste Abstand vom Kreis zum Dreieck erhalten;
- HaslineIntersection - Überprüfen Sie, ob die Linie und der Kreis Kreuzung haben;
- FindlineIntersection - Finden Sie den Schnittpunkt zwischen der Linie und dem Kreis;
- HasRectintersection - Überprüfen Sie, ob der Kreis mit dem Rechteck mit dem Rechteck hat;
- Enthält - Überprüfen Sie, ob der Kreis/Kreissektor den Punkt enthält.
Ellipsegeo
- GetArea - Holen Sie sich den Ellipsebereich;
- GetEccentricity - Holen Sie sich die Ellipse -Exzentrizität;
- GetPerimeter - Holen Sie sich den Ellipseumfang;
- Enthält - Überprüfen Sie, ob der achseparallele Ellipse/Ellipse -Sektor den Punkt enthält.
Trianglegeo
- Bereich - Holen Sie sich den Dreiecksbereich;
- Umfang - Holen Sie sich das Dreiecksumfang;
- GetTriangletype - den Dreieckstyp erhalten;
- Getangles - Holen Sie sich die Dreieckswinkel;
- ISRight - Überprüfen Sie, ob ein Winkel gleich 90 Grad ist;
- ISOBTUSE - Überprüfen Sie, ob ein Winkel größer als 90 Grad ist;
- ISACUTE - Überprüfen Sie, ob alle Winkel weniger als 90 Grad betragen;
- Getaabb - Holen Sie sich das AABB -Rekt des Dreiecks;
- Drehen - das Dreieck um den Punkt/die Mitte drehen;
- GetCenter - Holen Sie sich das durchschnittliche Zentrum des Dreiecks;
- Distanzetoppunkt - Kürzeste Abstand vom Punkt zum Dreieck erhalten;
- Distancetocircle - Kürzesten Abstand vom Kreis zum Dreieck erhalten;
- HasSegmentintersection - Überprüfen Sie, ob zwischen dem Segment und dem Dreieck einen Schnittpunkt hat.
- Findsegmentintersection - Finden Sie den Schnittpunkt zwischen dem Segment und dem Dreieck;
- GetRelativocationSegment - Nehmen Sie den Segmentstandort relativ zum Dreieck;
- Enthält - Überprüfen Sie, ob das Dreieck den Punkt enthält.
Rectgeo
- GetArea - Erhalten Sie den Bereich des Rechtecks;
- GetCenter - Holen Sie sich den Mittelpunkt des Rechtecks;
- GetDimensions - Breite/Höhe des Rechtecks erhalten;
- GetPoints - Holen Sie sich Punkte des Rechtecks basierend auf diagonalen 0-2 Punkten;
- Getaabb - Holen Sie sich das AABB -Rechteck;
- HascircLeintersection - Überprüfen Sie, ob der Kreis eine Kreuzung mit dem achseorientierten und durch willkürlichen Punkte rechteckig angegeben ist.
- Hassegmentintersection - Überprüfen Sie, ob das Segment einen Schnitt mit der achseorientierten und durch willkürlichen Punkte rechteckig angegeben ist.
- Findsegmentintersection - Überschneidung zwischen dem Segment und dem achseorientierten und durch willkürlichen Punkte Rechteck angegeben;
- CreateFromSegment - Holen Sie sich das Rechteck mit einer Seite gleich dem Segment;
- DistanzTopoint - Kürzesten Abstand vom Punkt zum achseorientierten und durch willkürlichen Punkte rechteckig erhalten;
- Enthält - Überprüfen Sie, ob das durch willkürliche Punkte rechteckige Achsen orientierte und gegebene Punkt den Punkt enthält.
SurfaceGeo
- GetArea - Holen Sie sich die Oberfläche;
- GetMinpoint - Erhalten Sie den Mindestpunkt der Oberfläche;
- GetMaxpoint - den maximalen Punkt der Oberfläche erhalten;
- GetCenterpoint - Holen Sie sich den Oberflächenmittepunkt;
- Getaabb - Holen Sie sich das Rechteck, das die gesamte Oberfläche bedeckt;
- Entfernung - den kürzesten Abstand von der Oberfläche bis zum Punkt erhalten;
- Enthält - Überprüfen Sie, ob die Oberfläche den Punkt enthält.
Geoplanarnet
- Epsilon - Toleranz für Vergleichsoperationen (Standard 1E -3);
- Übergreifende Ausgleich - Überprüfen Sie, ob zwei Gleitkomma -Zahlen gleich sind;
- ÜberZero - Überprüfen Sie, ob die Schwimmpunktzahl gleich Null ist.