Konvex: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K
(Ergänzung der Definition konvex/konkav)
 
(6 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Bildwunsch|Die ASCII-Skizzen durch echte Bilder ersetzen.}}
 
 
= konvexe und konkave Polygone =
 
= konvexe und konkave Polygone =
  
 
== Unterschiede ==
 
== Unterschiede ==
  
Konvexe und konkave Polygone unterscheiden sich in einem essenziell wichtigen Punkt. Wenn man eine Linie zwischen einem Eckpunkt und dessen übernächsten Nachbarn zieht, liegen bei konvexen Polygonen der übersprungene Eckpunkt immer außerhalb des "neuen" Polygons. Bei konkaven Polygonen liegt mindestens ein so übersprungener Eckpunkt im "neuen" Polygon.
+
Konvexe und konkave Polygone unterscheiden sich in einem essenziell wichtigen Punkt. Wenn man eine Linie zwischen einem Eckpunkt und dessen übernächsten Nachbarn zieht, liegen bei konvexen Polygonen der übersprungene Eckpunkt immer außerhalb des "neuen" Polygons. Zieht man eine solche Linie für alle Eckpunkte eines Polygons und liegt mindestens ein übersprungener Punkt im "neuen" Polygon, so ist das Polygon konkav.
 +
Wenn der übersprungene Eckpunkt '''auf''' der neu entstandenen Kante liegt, gilt das Polygone auch dann als konvex.
 +
 
 +
Eine andere einfache Unterscheidungsregel ist die folgende: Betrachtet man an jedem Eckpunkt des Polygons den Innenwinkel, so beträgt dieser bei konvexen Polygonen maximal 180°. Ist auch nur ein Innenwinkel des Polygons größer als 180°, so ist das Polygon konkav.
  
 
== Skizze ==
 
== Skizze ==
Zeile 10: Zeile 12:
 
===Konvex===
 
===Konvex===
  
*------*
+
[[Bild:Konvex normal.png|framed|center|Ein konvexes Polygon]]
|       \
 
|       \
 
*        *
 
  \      /
 
  * ----*
 
  
 
===Konkav===
 
===Konkav===
 
+
{|width="100%"
*-------*      *-------*
+
|[[Bild:Konvex konvex.png|framed|right|Der markierte Eckpunkt macht das Polygon konkav.]]
  \      \      |       \
+
|[[Bild:Konvex konvex2.png|framed|left|Wird er übersprungen, liegt er im neu entstandenen Polygon.]]
  \      \    |         \
+
|}
  [*]      *    | [*]      *
 
  /      /      |       /
 
  *-------*      *-------*
 
 
 
Der markierte Eckpunkt macht das Polygon konkav. Wird er übersprungen, liegt er im neu entstandenen Polygon.
 
 
 
  
 
===Bedeutung===
 
===Bedeutung===
 
Die Klassifizierung von Polygonen ist z.B. bei der [[Tesselierung]] von Bedeutung.
 
Die Klassifizierung von Polygonen ist z.B. bei der [[Tesselierung]] von Bedeutung.
 +
 +
Auch die standard OpenGL Zeichenroutine (basierend auf [[glBegin]]) zeichnet ausschließlich konvexe Polygone richtig. Die falsche Darstellung äußert sich meist darin, dass eine zusätzliche Kante vom letzten Punkt zum ersten Punkt des Polygons gezogen wird.

Aktuelle Version vom 5. April 2012, 21:16 Uhr

konvexe und konkave Polygone

Unterschiede

Konvexe und konkave Polygone unterscheiden sich in einem essenziell wichtigen Punkt. Wenn man eine Linie zwischen einem Eckpunkt und dessen übernächsten Nachbarn zieht, liegen bei konvexen Polygonen der übersprungene Eckpunkt immer außerhalb des "neuen" Polygons. Zieht man eine solche Linie für alle Eckpunkte eines Polygons und liegt mindestens ein übersprungener Punkt im "neuen" Polygon, so ist das Polygon konkav. Wenn der übersprungene Eckpunkt auf der neu entstandenen Kante liegt, gilt das Polygone auch dann als konvex.

Eine andere einfache Unterscheidungsregel ist die folgende: Betrachtet man an jedem Eckpunkt des Polygons den Innenwinkel, so beträgt dieser bei konvexen Polygonen maximal 180°. Ist auch nur ein Innenwinkel des Polygons größer als 180°, so ist das Polygon konkav.

Skizze

Konvex

Ein konvexes Polygon

Konkav

Der markierte Eckpunkt macht das Polygon konkav.
Wird er übersprungen, liegt er im neu entstandenen Polygon.

Bedeutung

Die Klassifizierung von Polygonen ist z.B. bei der Tesselierung von Bedeutung.

Auch die standard OpenGL Zeichenroutine (basierend auf glBegin) zeichnet ausschließlich konvexe Polygone richtig. Die falsche Darstellung äußert sich meist darin, dass eine zusätzliche Kante vom letzten Punkt zum ersten Punkt des Polygons gezogen wird.