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