diff --git a/Geometry/Geometry.vbproj b/Geometry/Geometry.vbproj index 64de59c..7684046 100644 --- a/Geometry/Geometry.vbproj +++ b/Geometry/Geometry.vbproj @@ -33,6 +33,7 @@ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 True MinimumRecommendedRules.ruleset + false pdbonly diff --git a/Geometry/My Project/AssemblyInfo.vb b/Geometry/My Project/AssemblyInfo.vb index 25e9f4e..13c03a8 100644 --- a/Geometry/My Project/AssemblyInfo.vb +++ b/Geometry/My Project/AssemblyInfo.vb @@ -17,6 +17,6 @@ Imports System.Runtime.InteropServices - - + + diff --git a/Geometry/My Project/Resources.Designer.vb b/Geometry/My Project/Resources.Designer.vb index abec2e8..60e5e71 100644 --- a/Geometry/My Project/Resources.Designer.vb +++ b/Geometry/My Project/Resources.Designer.vb @@ -360,63 +360,63 @@ Namespace My.Resources ''' ''' Sucht eine lokalisierte Zeichenfolge, die Die Seiten erfüllen die Dreiecksungleichung nicht. ähnelt. ''' - Friend ReadOnly Property String1() As String + Friend ReadOnly Property CheckTriangleInequality() As String Get - Return ResourceManager.GetString("String1", resourceCulture) + Return ResourceManager.GetString("CheckTriangleInequality", resourceCulture) End Get End Property ''' ''' Sucht eine lokalisierte Zeichenfolge, die Die obere Grundlänge muss kleiner als die untere sein. ähnelt. ''' - Friend ReadOnly Property String2() As String + Friend ReadOnly Property CheckTopLengthLessThanBottom() As String Get - Return ResourceManager.GetString("String2", resourceCulture) + Return ResourceManager.GetString("CheckTopLengthLessThanBottom", resourceCulture) End Get End Property ''' ''' Sucht eine lokalisierte Zeichenfolge, die Die obere Grundbreite muss kleiner als die untere sein. ähnelt. ''' - Friend ReadOnly Property String3() As String + Friend ReadOnly Property CheckTopWidthIsLessThanBottom() As String Get - Return ResourceManager.GetString("String3", resourceCulture) + Return ResourceManager.GetString("CheckTopWidthIsLessThanBottom", resourceCulture) End Get End Property ''' ''' Sucht eine lokalisierte Zeichenfolge, die t muss im Bereich 0 bis 1 liegen. ähnelt. ''' - Friend ReadOnly Property String4() As String + Friend ReadOnly Property CheckParameterBetweenZeroAndOne() As String Get - Return ResourceManager.GetString("String4", resourceCulture) + Return ResourceManager.GetString("CheckParameterBetweenZeroAndOne", resourceCulture) End Get End Property ''' ''' Sucht eine lokalisierte Zeichenfolge, die Die Summe der Grundseiten muss größer als Null sein. ähnelt. ''' - Friend ReadOnly Property String5() As String + Friend ReadOnly Property CheckBasesSumPositive() As String Get - Return ResourceManager.GetString("String5", resourceCulture) + Return ResourceManager.GetString("CheckBasesSumPositive", resourceCulture) End Get End Property ''' ''' Sucht eine lokalisierte Zeichenfolge, die Die Eckpunkte dürfen kein degeneriertes Polygon bilden. ähnelt. ''' - Friend ReadOnly Property String6() As String + Friend ReadOnly Property CheckPolygonNonDegenerate() As String Get - Return ResourceManager.GetString("String6", resourceCulture) + Return ResourceManager.GetString("CheckPolygonNonDegenerate", resourceCulture) End Get End Property ''' ''' Sucht eine lokalisierte Zeichenfolge, die Es müssen mindestens {0} Eckpunkte angegeben werden. ähnelt. ''' - Friend ReadOnly Property String7() As String + Friend ReadOnly Property CheckVerticesMinimumCount() As String Get - Return ResourceManager.GetString("String7", resourceCulture) + Return ResourceManager.GetString("CheckVerticesMinimumCount", resourceCulture) End Get End Property diff --git a/Geometry/My Project/Resources.resx b/Geometry/My Project/Resources.resx index 91192d0..5dfaca8 100644 --- a/Geometry/My Project/Resources.resx +++ b/Geometry/My Project/Resources.resx @@ -186,16 +186,16 @@ Die Fläche darf nicht negativ sein. - + Die Seiten erfüllen die Dreiecksungleichung nicht. Die Seitenanzahl muss größer oder gleich 3 sein. - + Die obere Grundlänge muss kleiner als die untere sein. - + Die obere Grundbreite muss kleiner als die untere sein. @@ -243,16 +243,16 @@ Es müssen genau 3 Eckpunkte angegeben werden. - + t muss im Bereich 0 bis 1 liegen. - + Die Summe der Grundseiten muss größer als Null sein. - + Die Eckpunkte dürfen kein degeneriertes Polygon bilden. - + Es müssen mindestens {0} Eckpunkte angegeben werden. \ No newline at end of file diff --git a/Geometry/ThreeDimensional/Cone.vb b/Geometry/ThreeDimensional/Cone.vb index 0cb65d7..f7f3ed8 100644 --- a/Geometry/ThreeDimensional/Cone.vb +++ b/Geometry/ThreeDimensional/Cone.vb @@ -197,7 +197,7 @@ Namespace ThreeDimensional Throw New ArgumentException(My.Resources.CheckNonNegativeHeight, NameOf(height)) End If If t < 0 OrElse t > 1 Then - Throw New ArgumentException(My.Resources.String4, NameOf(t)) + Throw New ArgumentException(My.Resources.CheckParameterBetweenZeroAndOne, NameOf(t)) End If Dim currentRadius = radius * (1.0 - t) diff --git a/Geometry/ThreeDimensional/Cuboid.md b/Geometry/ThreeDimensional/Cuboid.md index 13d3d20..96fd32a 100644 --- a/Geometry/ThreeDimensional/Cuboid.md +++ b/Geometry/ThreeDimensional/Cuboid.md @@ -18,7 +18,7 @@ Statische Hilfsklasse für Berechnungen zu Quadern (Volumen, Oberflächen, Diago `EdgeFromVolume` - Berechnet eine fehlende Kante aus Volumen und zwei bekannten Kanten. Parameter: `volume` (`>= 0`), `edge1` (`> 0`), `edge2` (`> 0`). Rückgabe: `volume / (edge1 * edge2)`. -`IsCube` - Prüft, ob ein Quader innerhalb einer Toleranz ein Würfel ist (alle Kanten gleich). Parameter: `length` (`>= 0`), `width` (`>= 0`), `height` (`>= 0`), `tolerance` (`> 0`). +`IsCube` - Prüft, ob ein Quader innerhalb einer Toleranz ein Würfel ist (alle Kanten gleich). Parameter: `length` (`>= 0`), `width` (`>= 0`), `height` (`>= 0`), `tolerance` (`> 0`, optional). `Center` - Berechnet den Mittelpunkt aus zwei gegenüberliegenden Eckpunkten. Parameter: `x1`, `y1`, `z1` (Punkt 1), `x2`, `y2`, `z2` (Punkt 2). Rückgabe: `Tuple(Of Double, Double, Double)`. diff --git a/Geometry/ThreeDimensional/Frustum.vb b/Geometry/ThreeDimensional/Frustum.vb index 668707a..59b9aef 100644 --- a/Geometry/ThreeDimensional/Frustum.vb +++ b/Geometry/ThreeDimensional/Frustum.vb @@ -235,10 +235,10 @@ Namespace ThreeDimensional Throw New ArgumentException(My.Resources.CheckNonNegativeWidth, NameOf(topWidth)) End If If topLength >= bottomLength Then - Throw New ArgumentException(My.Resources.String2, NameOf(topLength)) + Throw New ArgumentException(My.Resources.CheckTopLengthLessThanBottom, NameOf(topLength)) End If If topWidth >= bottomWidth Then - Throw New ArgumentException(My.Resources.String3, NameOf(topWidth)) + Throw New ArgumentException(My.Resources.CheckTopWidthIsLessThanBottom, NameOf(topWidth)) End If If height < 0 Then Throw New ArgumentException(My.Resources.CheckNonNegativeHeight, NameOf(height)) diff --git a/Geometry/ThreeDimensional/Prism.vb b/Geometry/ThreeDimensional/Prism.vb index 3359cd5..07fe06b 100644 --- a/Geometry/ThreeDimensional/Prism.vb +++ b/Geometry/ThreeDimensional/Prism.vb @@ -195,7 +195,7 @@ Namespace ThreeDimensional End If If sideA + sideB <= sideC OrElse sideA + sideC <= sideB OrElse sideB + sideC <= sideA Then - Throw New ArgumentException(My.Resources.String1, NameOf(sideC)) + Throw New ArgumentException(My.Resources.CheckTriangleInequality, NameOf(sideC)) End If End Sub diff --git a/Geometry/TwoDimensional/Circle.md b/Geometry/TwoDimensional/Circle.md index 0dea639..7f2e65e 100644 --- a/Geometry/TwoDimensional/Circle.md +++ b/Geometry/TwoDimensional/Circle.md @@ -4,33 +4,37 @@ Statische Hilfsklasse für Kreisberechnungen: Flächen, Umfang, Bogensegmente, S ## Funktionen -`Area` - Berechnet die Fläche eines Kreises. Parameter: `r` (Radius, `r >= 0`). Rückgabe: `π * r^2`. +`Area` - Berechnet die Fläche eines Kreises. Parameter: `radius` (Radius, `radius >= 0`). Rückgabe: `π * radius^2`. -`AreaFromDiameter` - Berechnet die Fläche aus dem Durchmesser. Parameter: `d` (Durchmesser, `d >= 0`). Rückgabe: `π * d^2 / 4`. +`AreaFromDiameter` - Berechnet die Fläche aus dem Durchmesser. Parameter: `diameter` (Durchmesser, `diameter >= 0`). Rückgabe: `π * diameter^2 / 4`. -`Circumference` - Berechnet den Umfang. Parameter: `r` (Radius, `r >= 0`). Rückgabe: `2 * π * r`. +`Circumference` - Berechnet den Umfang. Parameter: `radius` (Radius, `radius >= 0`). Rückgabe: `2 * π * radius`. -`CircumferenceFromDiameter` - Berechnet den Umfang aus dem Durchmesser. Parameter: `d` (Durchmesser, `d >= 0`). Rückgabe: `π * d`. +`CircumferenceFromDiameter` - Berechnet den Umfang aus dem Durchmesser. Parameter: `diameter` (Durchmesser, `diameter >= 0`). Rückgabe: `π * diameter`. -`DiameterFromRadius` - Konvertiert Radius in Durchmesser. Parameter: `r` (Radius, `r >= 0`). Rückgabe: `2 * r`. +`DiameterFromRadius` - Konvertiert Radius in Durchmesser. Parameter: `radius` (Radius, `radius >= 0`). Rückgabe: `2 * radius`. -`RadiusFromDiameter` - Konvertiert Durchmesser in Radius. Parameter: `d` (Durchmesser, `d >= 0`). Rückgabe: `d / 2`. +`RadiusFromDiameter` - Konvertiert Durchmesser in Radius. Parameter: `diameter` (Durchmesser, `diameter >= 0`). Rückgabe: `diameter / 2`. -`ArcLength` - Berechnet die Bogenlänge für einen Zentralwinkel im Bogenmaß. Parameter: `r` (Radius, `r >= 0`), `angleRadians` (Winkel im Bogenmaß). Rückgabe: `r * angleRadians`. +`ArcLength` - Berechnet die Bogenlänge für einen Zentralwinkel im Bogenmaß. Parameter: `radius` (Radius, `radius >= 0`), `angleRadians` (Winkel im Bogenmaß). Rückgabe: `radius * angleRadians`. -`ArcLengthDegrees` - Berechnet die Bogenlänge für Winkel in Grad. Parameter: `r` (Radius, `r >= 0`), `angleDegrees` (Winkel in Grad). Rückgabe: `r * angleDegrees * π / 180`. +`ArcLengthDegrees` - Berechnet die Bogenlänge für Winkel in Grad. Parameter: `radius` (Radius, `radius >= 0`), `angleDegrees` (Winkel in Grad). Rückgabe: `radius * angleDegrees * π / 180`. -`SectorArea` - Berechnet die Fläche eines Kreissektors für Winkel im Bogenmaß. Parameter: `r` (Radius, `r >= 0`), `angleRadians` (Winkel im Bogenmaß). Rückgabe: `0.5 * r^2 * angleRadians`. +`SectorArea` - Berechnet die Fläche eines Kreissektors für Winkel im Bogenmaß. Parameter: `radius` (Radius, `radius >= 0`), `angleRadians` (Winkel im Bogenmaß). Rückgabe: `0.5 * radius^2 * angleRadians`. -`SectorAreaDegrees` - Berechnet die Fläche eines Kreissektors für Winkel in Grad. Parameter: `r` (Radius, `r >= 0`), `angleDegrees` (Winkel in Grad). Rückgabe: `π * r^2 * angleDegrees / 360`. +`SectorAreaDegrees` - Berechnet die Fläche eines Kreissektors für Winkel in Grad. Parameter: `radius` (Radius, `radius >= 0`), `angleDegrees` (Winkel in Grad). Rückgabe: `π * radius^2 * angleDegrees / 360`. -`ChordLength` - Berechnet die Sehnenlänge aus dem Zentralwinkel. Parameter: `r` (Radius, `r >= 0`), `angleRadians` (Winkel im Bogenmaß). Rückgabe: `2 * r * sin(angleRadians / 2)`. +`ChordLength` - Berechnet die Sehnenlänge aus dem Zentralwinkel. Parameter: `radius` (Radius, `radius >= 0`), `angleRadians` (Winkel im Bogenmaß). Rückgabe: `2 * radius * sin(angleRadians / 2)`. -`ChordLengthFromSagitta` - Berechnet die Sehnenlänge aus der Sehnenhöhe (Sagitta). Parameter: `r` (Radius, `r >= 0`), `sagitta` (Sehnenhöhe, `0 <= sagitta <= r`). Rückgabe: `2 * sqrt(2 * r * sagitta - sagitta^2)`. +`ChordLengthFromSagitta` - Berechnet die Sehnenlänge aus der Sehnenhöhe (Sagitta). Parameter: `radius` (Radius, `radius >= 0`), `sagitta` (Sehnenhöhe, `0 <= sagitta <= radius`). Rückgabe: `2 * sqrt(2 * radius * sagitta - sagitta^2)`. -`AngleFromArcLength` - Berechnet den Zentralwinkel (Bogenmaß) aus der Bogenlänge. Parameter: `r` (Radius, `r > 0`), `arcLength` (Bogenlänge). Rückgabe: `arcLength / r`. +`AngleFromArcLength` - Berechnet den Zentralwinkel (Bogenmaß) aus der Bogenlänge. Parameter: `radius` (Radius, `radius > 0`), `arcLength` (Bogenlänge). Rückgabe: `arcLength / radius`. -`AngleFromChordLength` - Berechnet den Zentralwinkel (Bogenmaß) aus der Sehnenlänge. Parameter: `r` (Radius, `r > 0`), `chordLength` (Sehnenlänge, `0 <= chordLength <= 2 * r`). Rückgabe: `2 * asin(chordLength / (2 * r))`. +`AngleFromChordLength` - Berechnet den Zentralwinkel (Bogenmaß) aus der Sehnenlänge. Parameter: `radius` (Radius, `radius > 0`), `chordLength` (Sehnenlänge, `0 <= chordLength <= 2 * radius`). Rückgabe: `2 * asin(chordLength / (2 * radius))`. + +`PointOnCircle` - Berechnet einen Punkt auf dem Kreis für Mittelpunkt und Winkel im Bogenmaß. Parameter: `cx` (Mittelpunkt-X), `cy` (Mittelpunkt-Y), `radius` (Radius, `radius >= 0`), `angleRadians` (Winkel im Bogenmaß). Rückgabe: `PointF(x, y)` mit `x = cx + radius * cos(angleRadians)` und `y = cy + radius * sin(angleRadians)`. + +`BoundingBox` - Liefert das achsenparallele Bounding-Box-Rechteck eines Kreises. Parameter: `cx` (Mittelpunkt-X), `cy` (Mittelpunkt-Y), `radius` (Radius, `radius >= 0`). Rückgabe: `RectangleF(x, y, w, h)` mit `x = cx - radius`, `y = cy - radius`, `w = h = 2 * radius`. ## Hinweise diff --git a/Geometry/TwoDimensional/Ellipse.md b/Geometry/TwoDimensional/Ellipse.md index da2b8de..cefe3e0 100644 --- a/Geometry/TwoDimensional/Ellipse.md +++ b/Geometry/TwoDimensional/Ellipse.md @@ -16,7 +16,7 @@ Statische Hilfsklasse zur Arbeit mit Ellipsen (Geometrie, Tangenten/Normalen, Um `PerimeterRamanujan2` - Berechnet die 2. Ramanujan-Näherung des Umfangs. Parameter: `a` (Halbachse a, `a > 0`), `b` (Halbachse b, `b > 0`). -`PerimeterNumeric` - Berechnet den Umfang numerisch mit Simpson-Integration. Parameter: `a` (Halbachse a, `a > 0`), `b` (Halbachse b, `b > 0`), `subdivisions` (Unterteilungen, wird auf gerade Zahl `>= 2` normalisiert). +`PerimeterNumeric` - Berechnet den Umfang numerisch mit Simpson-Integration. Parameter: `a` (Halbachse a, `a > 0`), `b` (Halbachse b, `b > 0`), `subdivisions` (Unterteilungen, optional; wird auf gerade Zahl `>= 2` normalisiert). `PointOnEllipse` - Berechnet einen Punkt auf der Ellipse. Parameter: `a` (Halbachse a, `a > 0`), `b` (Halbachse b, `b > 0`), `theta` (Parameterwinkel im Bogenmaß). Rückgabe: `PointF(x, y)` mit `x = a*cos(theta)`, `y = b*sin(theta)`. @@ -24,9 +24,9 @@ Statische Hilfsklasse zur Arbeit mit Ellipsen (Geometrie, Tangenten/Normalen, Um `NormalAt` - Liefert die Normale an der Ellipse. Parameter: `a` (Halbachse a, `a > 0`), `b` (Halbachse b, `b > 0`), `theta` (Parameterwinkel im Bogenmaß). -`RadiusOfCurvature` - Berechnet den Krümmungsradius an der Ellipse. Parameter: `a` (Halbachse a, `a > 0`), `b` (Halbachse b, `b > 0`), `theta` (Parameterwinkel im Bogenmaß). Gibt `Infinity` zurück, falls degeneriert. +`RadiusOfCurvature` - Berechnet den Krümmungsradius an der Ellipse. Parameter: `a` (Halbachse a, `a > 0`), `b` (Halbachse b, `b > 0`), `theta` (Parameterwinkel im Bogenmaß). Rückgabe: Krümmungsradius; bei degeneriertem Fall `Double.PositiveInfinity`. -`ArcLength` - Berechnet die Bogenlänge numerisch zwischen zwei Parametern. Parameter: `a` (Halbachse a, `a > 0`), `b` (Halbachse b, `b > 0`), `theta1` (Startwinkel), `theta2` (Endwinkel), `subdivisions` (Unterteilungen, wird auf gerade Zahl `>= 2` normalisiert). +`ArcLength` - Berechnet die Bogenlänge numerisch zwischen zwei Parametern. Parameter: `a` (Halbachse a, `a > 0`), `b` (Halbachse b, `b > 0`), `theta1` (Startwinkel), `theta2` (Endwinkel), `subdivisions` (Unterteilungen, optional; wird auf gerade Zahl `>= 2` normalisiert). `ClosestPointOnEllipse` - Findet iterativ (Newton) den nächsten Punkt auf der Ellipse zu einem Referenzpunkt. Parameter: `a` (Halbachse a, `a > 0`), `b` (Halbachse b, `b > 0`), `px` (X des Referenzpunkts), `py` (Y des Referenzpunkts), `initialTheta` (optional Startwert), `maxIter` (max. Iterationen), `tol` (Abbruch-Toleranz). Rückgabe: `Tuple(PointF closestPoint, Double distance)`. diff --git a/Geometry/TwoDimensional/Kite.md b/Geometry/TwoDimensional/Kite.md index 981f0b8..fc4801a 100644 --- a/Geometry/TwoDimensional/Kite.md +++ b/Geometry/TwoDimensional/Kite.md @@ -12,7 +12,7 @@ Statische Hilfsklasse für Berechnungen zu Drachenvierecken (Fläche, Umfang, Se `HeightFromArea` - Berechnet die Höhe aus Fläche und Grundseite. Parameter: `area` (`>= 0`), `baseLength` (`> 0`). Rückgabe: `area / baseLength`. -`IsSymmetricBySides` - Prüft ein symmetrisches Drachen-Seitenmuster. Parameter: `sideA`, `sideB`, `sideC`, `sideD` (Seitenlängen, `>= 0`), `tolerance` (`> 0`). +`IsSymmetricBySides` - Prüft ein symmetrisches Drachen-Seitenmuster. Parameter: `sideA`, `sideB`, `sideC`, `sideD` (Seitenlängen, `>= 0`), `tolerance` (`> 0`, optional). `VerticesFromCenter` - Berechnet 4 Eckpunkte aus Mittelpunkt, Diagonalen und Rotation. Parameter: `cx`, `cy` (Mittelpunkt), `diagonal1`, `diagonal2` (`>= 0`), `rotationRadians` (Bogenmaß). @@ -20,7 +20,7 @@ Statische Hilfsklasse für Berechnungen zu Drachenvierecken (Fläche, Umfang, Se `PerimeterFromVertices` - Berechnet den Umfang aus 4 Eckpunkten. Parameter: `vertices` (4 Eckpunkte als `PointF()`). -`IsKiteFromVertices` - Prüft, ob 4 Eckpunkte ein Drachenviereck bilden. Parameter: `vertices` (4 Eckpunkte), `tolerance` (`> 0`). +`IsKiteFromVertices` - Prüft, ob 4 Eckpunkte ein Drachenviereck bilden. Parameter: `vertices` (4 Eckpunkte), `tolerance` (`> 0`, optional). ## Hinweise diff --git a/Geometry/TwoDimensional/Parallelogram.md b/Geometry/TwoDimensional/Parallelogram.md index 2208644..5243a30 100644 --- a/Geometry/TwoDimensional/Parallelogram.md +++ b/Geometry/TwoDimensional/Parallelogram.md @@ -10,21 +10,21 @@ Statische Hilfsklasse für Berechnungen zu Parallelogrammen (Fläche, Umfang, Di `HeightFromArea` - Berechnet die Höhe aus Fläche und Grundseite. Parameter: `area` (`>= 0`), `b` (`> 0`). Rückgabe: `area / b`. -`SideFromPerimeter` - Berechnet die fehlende Seite aus Umfang und bekannter Seite. Parameter: `perimeter` (`> 0`), `knownSide` (`> 0`). Rückgabe: `(perimeter / 2) - knownSide`. +`SideFromPerimeter` - Berechnet die fehlende Seite aus Umfang und bekannter Seite. Parameter: `perimeter` (`>= 0`), `knownSide` (`>= 0`) mit zusätzlicher Bedingung `perimeter > 2 * knownSide`. Rückgabe: `(perimeter / 2) - knownSide`. `DiagonalBySidesAndAngle` - Berechnet beide Diagonalen aus Seiten und eingeschlossenem Winkel. Parameter: `a` (`> 0`), `b` (`> 0`), `includedAngleRadians` (`0 < Winkel < PI`). Rückgabe: `[|u+v|, |u-v|]`. -`InteriorAngleFromSidesAndDiagonals` - Berechnet den eingeschlossenen Innenwinkel (Bogenmaß) aus Seiten und Diagonalen. Parameter: `a` (`> 0`), `b` (`> 0`), `diagLong` (`> 0`), `diagShort` (`> 0`). +`InteriorAngleFromSidesAndDiagonals` - Berechnet den eingeschlossenen Innenwinkel (Bogenmaß) aus Seiten und Diagonalen. Parameter: `a` (`> 0`), `b` (`> 0`), `d1` (`> 0`), `d2` (`> 0`). -`Center` - Berechnet den Mittelpunkt aus zwei gegenüberliegenden Eckpunkten. Parameter: `p1`, `p3` (gegenüberliegende Eckpunkte als `PointF`). Rückgabe: `System.Drawing.PointF`. +`Center` - Berechnet den Mittelpunkt aus zwei gegenüberliegenden Eckpunkten. Parameter: `x1`, `y1`, `x3`, `y3` (Koordinaten zweier gegenüberliegender Eckpunkte). Rückgabe: `System.Drawing.PointF`. -`VerticesFromCenter` - Berechnet vier Eckpunkte aus Mittelpunkt, Seitenlängen, eingeschlossenem Winkel und Rotation. Parameter: `cx`, `cy` (Mittelpunkt), `a`, `b` (Seitenlängen, `> 0`), `interiorAngleRadians` (`0 < Winkel < PI`), `rotationRadians` (Bogenmaß). +`VerticesFromCenter` - Berechnet vier Eckpunkte aus Mittelpunkt, Seitenlängen, eingeschlossenem Winkel und Rotation. Parameter: `cx`, `cy` (Mittelpunkt), `a`, `b` (Seitenlängen, `> 0`), `includedAngleRadians` (`0 < Winkel < PI`), `rotationRadians` (Bogenmaß). `AreaFromVertices` - Berechnet die Polygonfläche aus Eckpunkten mit der Shoelace-Formel. Parameter: `vertices` (mindestens 3 Punkte als `PointF()`). `PerimeterFromVertices` - Berechnet den Umfang als Summe der Kantenlängen. Parameter: `vertices` (mindestens 2 Punkte als `PointF()`). -`IsParallelogramFromVertices` - Prüft, ob 4 Eckpunkte ein Parallelogramm bilden. Parameter: `vertices` (4 Eckpunkte), `tolerance` (`> 0`). +`IsParallelogramFromVertices` - Prüft, ob 4 Eckpunkte ein Parallelogramm bilden. Parameter: `vertices` (4 Eckpunkte), `tolerance` (`> 0`, optional). ## Hinweise diff --git a/Geometry/TwoDimensional/Polygon.md b/Geometry/TwoDimensional/Polygon.md index 6e4fc50..e69f136 100644 --- a/Geometry/TwoDimensional/Polygon.md +++ b/Geometry/TwoDimensional/Polygon.md @@ -8,9 +8,9 @@ Statische Hilfsklasse für Polygonberechnungen und Koordinatenoperationen. Behan `Perimeter` - Berechnet den Umfang als Summe aller Kantenlängen. Parameter: `vertices` (mindestens 2 Eckpunkte als `PointF()`). -`IsConvex` - Prüft, ob ein Polygon konvex ist (Vorzeichenprüfung der Kreuzprodukte). Parameter: `vertices` (mindestens 3 Eckpunkte), `tolerance` (`> 0`). +`IsConvex` - Prüft, ob ein Polygon konvex ist (Vorzeichenprüfung der Kreuzprodukte). Parameter: `vertices` (mindestens 3 Eckpunkte), `tolerance` (`> 0`, optional). -`IsRegular` - Prüft, ob ein Polygon regelmäßig ist (gleich lange Seiten und gleicher Radius zum Schwerpunkt innerhalb der Toleranz). Parameter: `vertices` (mindestens 3 Eckpunkte), `tolerance` (`> 0`). +`IsRegular` - Prüft, ob ein Polygon regelmäßig ist (gleich lange Seiten und gleicher Radius zum Schwerpunkt innerhalb der Toleranz). Parameter: `vertices` (mindestens 3 Eckpunkte), `tolerance` (`> 0`, optional). `Centroid` - Berechnet den Flächenschwerpunkt des Polygons. Parameter: `vertices` (mindestens 3 Eckpunkte). Wirft `ArgumentException` bei degenerierten Polygonen. diff --git a/Geometry/TwoDimensional/Polygon.vb b/Geometry/TwoDimensional/Polygon.vb index cc66575..5b0cbb5 100644 --- a/Geometry/TwoDimensional/Polygon.vb +++ b/Geometry/TwoDimensional/Polygon.vb @@ -141,7 +141,7 @@ Namespace TwoDimensional Next If Math.Abs(signedArea2) <= Double.Epsilon Then - Throw New ArgumentException(My.Resources.String6, NameOf(vertices)) + Throw New ArgumentException(My.Resources.CheckPolygonNonDegenerate, NameOf(vertices)) End If Dim factor = 1.0 / (3.0 * signedArea2) @@ -229,7 +229,7 @@ Namespace TwoDimensional Throw New ArgumentException(My.Resources.CheckVerticesNotNull, NameOf(vertices)) End If If vertices.Length < minCount Then - Throw New ArgumentException(My.Resources.String7.Replace("{0}", minCount.ToString()), NameOf(vertices)) + Throw New ArgumentException(My.Resources.CheckVerticesMinimumCount.Replace("{0}", minCount.ToString()), NameOf(vertices)) End If End Sub diff --git a/Geometry/TwoDimensional/Rectangle.md b/Geometry/TwoDimensional/Rectangle.md index 2a0ab45..b89e049 100644 --- a/Geometry/TwoDimensional/Rectangle.md +++ b/Geometry/TwoDimensional/Rectangle.md @@ -26,16 +26,16 @@ Statische Hilfsklasse für Berechnungen zu Rechtecken und Quadraten. Enthält Fu `FromDiagonalToSide` - Berechnet die Seitenlänge eines Quadrats aus der Diagonale. Parameter: `d` (Diagonale, `>= 0`). -`Center` - Berechnet den Mittelpunkt zweier Punkte. Parameter: `p1`, `p2` (Punkte als `PointF`). Rückgabe: `System.Drawing.PointF`. +`Center` - Berechnet den Mittelpunkt zweier Punkte. Parameter: `x1`, `y1`, `x2`, `y2` (Koordinaten zweier Punkte). Rückgabe: `System.Drawing.PointF`. -`VerticesFromCenter` - Liefert die 4 Eckpunkte eines rotierten Rechtecks aus Mittelpunkt, Breite, Höhe und Winkel. Parameter: `cx`, `cy` (Mittelpunkt), `w` (Breite, `>= 0`), `h` (Höhe, `>= 0`), `rotationRadians` (Bogenmaß). +`VerticesFromCenter` - Liefert die 4 Eckpunkte eines rotierten Rechtecks aus Mittelpunkt, Breite, Höhe und Winkel. Parameter: `cx`, `cy` (Mittelpunkt), `w` (Breite, `>= 0`), `h` (Höhe, `>= 0`), `angleRadians` (Bogenmaß). `AreaFromVertices` - Berechnet die Fläche aus Eckpunkten über die Shoelace-Formel. Parameter: `vertices` (mindestens 3 Punkte als `PointF()`). `PerimeterFromVertices` - Berechnet den Umfang als Summe der Kantenlängen. Parameter: `vertices` (mindestens 2 Punkte als `PointF()`). -`IsRectangleFromVertices` - Prüft, ob vier gegebene Punkte ein Rechteck bilden. Parameter: `vertices` (4 Eckpunkte), `tolerance` (`> 0`). +`IsRectangleFromVertices` - Prüft, ob vier gegebene Punkte ein Rechteck bilden. Parameter: `vertices` (4 Eckpunkte). ## Hinweise -Viele Methoden werfen ArgumentException bei ungültigen Parametern (z. B. negative Längen oder Division durch 0). Koordinatenmethoden verwenden System.Drawing.PointF (Single-Precision) zur Rückgabe. +Viele Methoden verwenden Guard-Clauses und werfen `ArgumentException` bei ungültigen Parametern (z. B. negative Längen oder Division durch 0). Bei einigen koordinatenbasierten Prüf-/Berechnungsmethoden werden für ungültige Eckpunkt-Arrays stattdessen direkte Rückgabewerte verwendet (z. B. `0.0` oder `False`). Koordinatenmethoden verwenden `System.Drawing.PointF` (Single-Precision) zur Rückgabe. diff --git a/Geometry/TwoDimensional/RegularPolygon.md b/Geometry/TwoDimensional/RegularPolygon.md index 35712d0..f354914 100644 --- a/Geometry/TwoDimensional/RegularPolygon.md +++ b/Geometry/TwoDimensional/RegularPolygon.md @@ -24,7 +24,7 @@ Statische Hilfsklasse für Berechnungen an regelmäßigen Polygonen. Enthält Ba `PerimeterFromVertices` - Berechnet den Umfang aus Eckpunkten als Summe der Kantenlängen. Parameter: `vertices` (mindestens 2 Eckpunkte als `PointF()`). -`IsRegularFromVertices` - Prüft, ob ein Eckpunkt-Array ein regelmäßiges Polygon bildet (gleiche Seitenlängen und gleiche Radien zum Mittelpunkt). Parameter: `vertices` (mindestens 3 Eckpunkte), `tolerance` (`> 0`). +`IsRegularFromVertices` - Prüft, ob ein Eckpunkt-Array ein regelmäßiges Polygon bildet (gleiche Seitenlängen und gleiche Radien zum Mittelpunkt). Parameter: `vertices` (mindestens 3 Eckpunkte), `tolerance` (`> 0`, optional). ## Hinweise diff --git a/Geometry/TwoDimensional/RegularPolygon.vb b/Geometry/TwoDimensional/RegularPolygon.vb index d0a893a..6dbdb1f 100644 --- a/Geometry/TwoDimensional/RegularPolygon.vb +++ b/Geometry/TwoDimensional/RegularPolygon.vb @@ -245,7 +245,7 @@ Namespace TwoDimensional Throw New ArgumentException(My.Resources.CheckVerticesNotNull, NameOf(vertices)) End If If vertices.Length < minCount Then - Throw New ArgumentException(My.Resources.String7.Replace("{0}", minCount.ToString()), NameOf(vertices)) + Throw New ArgumentException(My.Resources.CheckVerticesMinimumCount.Replace("{0}", minCount.ToString()), NameOf(vertices)) End If End Sub diff --git a/Geometry/TwoDimensional/Rhombus.md b/Geometry/TwoDimensional/Rhombus.md index 2d50314..afad038 100644 --- a/Geometry/TwoDimensional/Rhombus.md +++ b/Geometry/TwoDimensional/Rhombus.md @@ -22,7 +22,7 @@ Statische Hilfsklasse für Berechnungen zu Rauten (Fläche, Umfang, Diagonalen, `PerimeterFromVertices` - Berechnet den Umfang aus 4 Eckpunkten als Summe der Kantenlängen. Parameter: `vertices` (4 Eckpunkte als `PointF()`). -`IsRhombusFromVertices` - Prüft, ob 4 Eckpunkte eine Raute bilden (alle Seitenlängen gleich innerhalb Toleranz). Parameter: `vertices` (4 Eckpunkte), `tolerance` (`> 0`). +`IsRhombusFromVertices` - Prüft, ob 4 Eckpunkte eine Raute bilden (alle Seitenlängen gleich innerhalb Toleranz). Parameter: `vertices` (4 Eckpunkte), `tolerance` (`> 0`, optional). ## Hinweise diff --git a/Geometry/TwoDimensional/Square.md b/Geometry/TwoDimensional/Square.md index d3e89f7..216a4d0 100644 --- a/Geometry/TwoDimensional/Square.md +++ b/Geometry/TwoDimensional/Square.md @@ -22,7 +22,7 @@ Statische Hilfsklasse für Berechnungen zu Quadraten (Basiswerte, abgeleitete Gr `PerimeterFromVertices` - Berechnet den Umfang aus 4 Eckpunkten als Summe der Kantenlängen. Parameter: `vertices` (4 Eckpunkte als `PointF()`). -`IsSquareFromVertices` - Prüft, ob 4 Eckpunkte ein Quadrat bilden (gleich lange Seiten + rechte Winkel innerhalb Toleranz). Parameter: `vertices` (4 Eckpunkte), `tolerance` (`> 0`). +`IsSquareFromVertices` - Prüft, ob 4 Eckpunkte ein Quadrat bilden (gleich lange Seiten + rechte Winkel innerhalb Toleranz). Parameter: `vertices` (4 Eckpunkte), `tolerance` (`> 0`, optional). ## Hinweise diff --git a/Geometry/TwoDimensional/Trapezoid.md b/Geometry/TwoDimensional/Trapezoid.md index 8422264..4e523a9 100644 --- a/Geometry/TwoDimensional/Trapezoid.md +++ b/Geometry/TwoDimensional/Trapezoid.md @@ -14,7 +14,7 @@ Statische Hilfsklasse für Berechnungen zu Trapezen (Fläche, Umfang, Mittellini `LegLengthIsosceles` - Berechnet die Schenkellänge eines gleichschenkligen Trapezes aus Grundseiten und Höhe. Parameter: `baseA`, `baseB` (Grundseiten, `>= 0`), `height` (`>= 0`). -`IsIsosceles` - Prüft, ob ein Trapez gleichschenklig ist (`|legB - legD| <= tolerance`). Parameter: `legB` (`> 0`), `legD` (`> 0`), `tolerance` (`> 0`). +`IsIsosceles` - Prüft, ob ein Trapez gleichschenklig ist (`|legB - legD| <= tolerance`). Parameter: `legB` (`> 0`), `legD` (`> 0`), `tolerance` (`> 0`, optional). `VerticesFromCenter` - Berechnet 4 Eckpunkte eines gleichschenkligen Trapezes aus Mittelpunkt, beiden Grundseiten, Höhe und Rotation (Bogenmaß). Parameter: `cx`, `cy` (Mittelpunkt), `baseA`, `baseB` (Grundseiten, `>= 0`), `height` (`>= 0`), `rotationRadians`. @@ -22,7 +22,7 @@ Statische Hilfsklasse für Berechnungen zu Trapezen (Fläche, Umfang, Mittellini `PerimeterFromVertices` - Berechnet den Umfang aus 4 Eckpunkten als Summe der Kantenlängen. Parameter: `vertices` (4 Eckpunkte als `PointF()`). -`IsTrapezoidFromVertices` - Prüft, ob 4 Eckpunkte ein Trapez bilden (mindestens ein Paar gegenüberliegender Seiten parallel, innerhalb einer Toleranz). Parameter: `vertices` (4 Eckpunkte), `tolerance` (`> 0`). +`IsTrapezoidFromVertices` - Prüft, ob 4 Eckpunkte ein Trapez bilden (mindestens ein Paar gegenüberliegender Seiten parallel, innerhalb einer Toleranz). Parameter: `vertices` (4 Eckpunkte), `tolerance` (`> 0`, optional). ## Hinweise diff --git a/Geometry/TwoDimensional/Trapezoid.vb b/Geometry/TwoDimensional/Trapezoid.vb index c03527b..fa28f4a 100644 --- a/Geometry/TwoDimensional/Trapezoid.vb +++ b/Geometry/TwoDimensional/Trapezoid.vb @@ -109,7 +109,7 @@ Namespace TwoDimensional Dim denominator = baseA + baseB If denominator <= 0 Then - Throw New ArgumentException(My.Resources.String5) + Throw New ArgumentException(My.Resources.CheckBasesSumPositive) End If #Disable Warning IDE0047 ' Unnötige Klammern entfernen diff --git a/Geometry/TwoDimensional/Triangle.md b/Geometry/TwoDimensional/Triangle.md index e678038..bc6afa0 100644 --- a/Geometry/TwoDimensional/Triangle.md +++ b/Geometry/TwoDimensional/Triangle.md @@ -14,15 +14,15 @@ Statische Hilfsklasse für Berechnungen zu Dreiecken (Fläche, Umfang, Winkel, S `AngleFromSides` - Berechnet einen Innenwinkel (Bogenmaß) über den Kosinussatz. Parameter: `opposite`, `adjacent1`, `adjacent2` (Seiten, `> 0`, gültige Dreiecksungleichung). -`SideLengthsFromVertices` - Berechnet die Seitenlängen aus drei Eckpunkten. Parameter: `a`, `b`, `c` (Eckpunkte als `PointF`). Rückgabe: `[AB, BC, CA]`. +`SideLengthsFromVertices` - Berechnet die Seitenlängen aus drei Eckpunkten. Parameter: `vertices` (Array mit genau drei Eckpunkten als `PointF`). Rückgabe: `[AB, BC, CA]`. -`AreaFromVertices` - Berechnet die Dreiecksfläche aus drei Eckpunkten mit der Shoelace-Formel. Parameter: `a`, `b`, `c` (Eckpunkte als `PointF`). +`AreaFromVertices` - Berechnet die Dreiecksfläche aus drei Eckpunkten mit der Shoelace-Formel. Parameter: `vertices` (Array mit genau drei Eckpunkten als `PointF`). -`PerimeterFromVertices` - Berechnet den Umfang aus drei Eckpunkten als Summe der Seitenlängen. Parameter: `a`, `b`, `c` (Eckpunkte als `PointF`). +`PerimeterFromVertices` - Berechnet den Umfang aus drei Eckpunkten als Summe der Seitenlängen. Parameter: `vertices` (Array mit genau drei Eckpunkten als `PointF`). -`Centroid` - Berechnet den Schwerpunkt (Centroid) aus drei Eckpunkten. Parameter: `a`, `b`, `c` (Eckpunkte als `PointF`). +`Centroid` - Berechnet den Schwerpunkt (Centroid) aus drei Eckpunkten. Parameter: `vertices` (Array mit genau drei Eckpunkten als `PointF`). -`IsValidTriangleFromVertices` - Prüft, ob drei Eckpunkte ein gültiges Dreieck mit Fläche größer als Toleranz bilden. Parameter: `a`, `b`, `c` (Eckpunkte als `PointF`), `tolerance` (`> 0`). +`IsValidTriangleFromVertices` - Prüft, ob drei Eckpunkte ein gültiges Dreieck mit Fläche größer als Toleranz bilden. Parameter: `vertices` (Array mit genau drei Eckpunkten als `PointF`), `tolerance` (`> 0`, optional). ## Hinweise diff --git a/GeometryTests/GeometryTests.vbproj b/GeometryTests/GeometryTests.vbproj index ac4b4c0..6126a04 100644 --- a/GeometryTests/GeometryTests.vbproj +++ b/GeometryTests/GeometryTests.vbproj @@ -28,6 +28,7 @@ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 True MinimumRecommendedRules.ruleset + false pdbonly @@ -140,7 +141,7 @@ all - 3.11.0 + 4.5.1