Created
July 7, 2021 23:29
-
-
Save pramsey/2fbf9e7b11229da6a1a70e689571e69d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<head> | |
<style> | |
html { | |
font-family: sans-serif; | |
} | |
.geomA { | |
marker-end: url(#vertexA); marker-mid: url(#vertexA); fill:#bbbbff; fill-opacity:0.5; stroke:#0000ff; stroke-width:1; stroke-opacity:1; stroke-miterlimit:4; stroke-linejoin:miter; stroke-linecap:square; | |
} | |
.geomB { | |
marker-end: url(#vertexB); marker-mid: url(#vertexB); fill:#ffbbbb; fill-opacity:0.5; stroke:#ff0000; stroke-width:1; stroke-opacity:1; stroke-miterlimit:4; stroke-linejoin:miter; stroke-linecap:square; | |
} | |
</style> | |
</head> | |
<body> | |
<h3>Polygon - Exverted shell, point touch</h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Exverted shell, point touch</desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 50 -70 90 -90 90 -10 50 -70 10 -10 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Exverted shell, point touch</desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -10 L 10 -90 50 -70 Z" /> | |
<path fill-rule="evenodd" d="M 90 -10 L 50 -70 90 -90 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Exverted shell, point touch</desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -90 L 50 -70 10 -10 Z" /> | |
<path fill-rule="evenodd" d="M 50 -70 L 90 -90 90 -10 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon - Exverted shell, point-line touch</h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Exverted shell, point-line touch</desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 50 -90 10 -10 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Exverted shell, point-line touch</desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -10 L 10 -90 50 -90 Z" /> | |
<path fill-rule="evenodd" d="M 90 -10 L 50 -90 90 -90 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Exverted shell, point-line touch</desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -90 L 50 -90 10 -10 Z" /> | |
<path fill-rule="evenodd" d="M 50 -90 L 90 -90 90 -10 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon - Exverted shell, line touch</h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Exverted shell, line touch</desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 60 -90 40 -90 10 -10 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Exverted shell, line touch</desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -10 L 10 -90 40 -90 Z" /> | |
<path fill-rule="evenodd" d="M 90 -10 L 60 -90 90 -90 Z" /> | |
<path fill-rule="evenodd" d="M 40 -90 L 60 -90" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Exverted shell, line touch</desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -90 L 40 -90 10 -10 Z" /> | |
<path fill-rule="evenodd" d="M 60 -90 L 90 -90 90 -10 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon - Inverted shell, point touch</h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Inverted shell, point touch</desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 50 -90 30 -50 70 -50 50 -90 90 -90 90 -10 10 -10 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Inverted shell, point touch</desc><path class="geomB" fill-rule="evenodd" d="M 50 -90 L 90 -90 90 -10 10 -10 10 -90 Z M 30 -50 L 70 -50 50 -90 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Inverted shell, point touch</desc><path class="geomB" fill-rule="evenodd" d="M 10 -90 L 50 -90 90 -90 90 -10 10 -10 Z M 50 -90 L 30 -50 70 -50 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon - Inverted shell, point-line touch</h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Inverted shell, point-line touch</desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 40 -90 40 -30 80 -30 40 -70 90 -70 90 -10 10 -10 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Inverted shell, point-line touch</desc><path class="geomB" fill-rule="evenodd" d="M 40 -90 L 40 -70 90 -70 90 -10 10 -10 10 -90 Z M 40 -30 L 80 -30 40 -70 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Inverted shell, point-line touch</desc><path class="geomB" fill-rule="evenodd" d="M 10 -90 L 40 -90 40 -70 90 -70 90 -10 10 -10 Z M 40 -70 L 40 -30 80 -30 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon - Inverted shell, line touch, exterior</h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Inverted shell, line touch, exterior</desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 70 -90 40 -90 40 -60 70 -60 70 -90 90 -90 90 -10 10 -10 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Inverted shell, line touch, exterior</desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 70 -90 L 90 -90 90 -10 10 -10 10 -90 40 -90 Z" /> | |
<path fill-rule="evenodd" d="M 40 -90 L 40 -60 70 -60 70 -90" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Inverted shell, line touch, exterior</desc><path class="geomB" fill-rule="evenodd" d="M 10 -90 L 40 -90 40 -60 70 -60 70 -90 90 -90 90 -10 10 -10 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon - Inverted shell, line touch, interior</h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Inverted shell, line touch, interior</desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 50 -90 50 -70 30 -40 70 -40 50 -70 50 -90 90 -90 90 -10 10 -10 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Inverted shell, line touch, interior</desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 50 -90 L 90 -90 90 -10 10 -10 10 -90 Z M 30 -40 L 70 -40 50 -70 Z" /> | |
<path fill-rule="evenodd" d="M 50 -90 L 50 -70" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Inverted shell, line touch, interior</desc><path class="geomB" fill-rule="evenodd" d="M 10 -90 L 50 -90 90 -90 90 -10 10 -10 Z M 50 -70 L 30 -40 70 -40 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon/Hole - Exverted hole, point touch</h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Exverted hole, point touch</desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 20 -80 L 50 -60 80 -80 80 -20 50 -60 20 -20 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Exverted hole, point touch</desc><path class="geomB" fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 20 -80 L 20 -20 50 -60 Z M 80 -20 L 80 -80 50 -60 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Exverted hole, point touch</desc><path class="geomB" fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 20 -80 L 20 -20 50 -60 Z M 80 -20 L 80 -80 50 -60 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon/Hole - Exverted hole, point-line touch</h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Exverted hole, point-line touch</desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 20 -80 L 80 -80 80 -20 50 -80 20 -20 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Exverted hole, point-line touch</desc><path class="geomB" fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 20 -80 L 20 -20 50 -80 Z M 80 -20 L 80 -80 50 -80 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Exverted hole, point-line touch</desc><path class="geomB" fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 20 -80 L 20 -20 50 -80 Z M 80 -20 L 80 -80 50 -80 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon/Hole - Exverted hole, line touch </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Exverted hole, line touch </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 80 -80 L 60 -50 40 -50 20 -80 20 -20 40 -50 60 -50 80 -20 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Exverted hole, line touch </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 60 -50 L 80 -20 80 -80 Z M 20 -80 L 20 -20 40 -50 Z" /> | |
<path fill-rule="evenodd" d="M 60 -50 L 40 -50" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Exverted hole, line touch </desc><path class="geomB" fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 20 -80 L 20 -20 40 -50 Z M 80 -20 L 80 -80 60 -50 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon/Hole - Inverted hole, point touch</h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Inverted hole, point touch</desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 20 -80 L 50 -80 30 -50 70 -50 50 -80 80 -80 80 -20 20 -20 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Inverted hole, point touch</desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -10 L 10 -10 10 -90 90 -90 Z M 20 -20 L 80 -20 80 -80 50 -80 20 -80 Z" /> | |
<path fill-rule="evenodd" d="M 30 -50 L 50 -80 70 -50 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Inverted hole, point touch</desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 20 -80 L 20 -20 80 -20 80 -80 50 -80 Z" /> | |
<path fill-rule="evenodd" d="M 70 -50 L 30 -50 50 -80 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon/Hole - Inverted hole, point-line touch</h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Inverted hole, point-line touch</desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 20 -80 L 40 -80 40 -40 70 -40 40 -70 80 -70 80 -20 20 -20 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Inverted hole, point-line touch</desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -10 L 10 -10 10 -90 90 -90 Z M 20 -80 L 20 -20 80 -20 80 -70 40 -70 40 -80 Z" /> | |
<path fill-rule="evenodd" d="M 40 -40 L 40 -70 70 -40 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Inverted hole, point-line touch</desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 40 -80 L 20 -80 20 -20 80 -20 80 -70 40 -70 Z" /> | |
<path fill-rule="evenodd" d="M 70 -40 L 40 -40 40 -70 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon/Hole - Inverted hole, line touch, interior </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Inverted hole, line touch, interior </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 20 -80 L 60 -80 40 -80 40 -40 60 -40 60 -80 80 -80 80 -20 20 -20 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Inverted hole, line touch, interior </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -10 L 10 -90 90 -90 90 -10 Z M 20 -80 L 20 -20 80 -20 80 -80 60 -80 40 -80 Z" /> | |
<path fill-rule="evenodd" d="M 40 -80 L 40 -40 60 -40 60 -80" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Inverted hole, line touch, interior </desc><path class="geomB" fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 20 -20 L 80 -20 80 -80 60 -80 60 -40 40 -40 40 -80 20 -80 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon/Hole - Inverted hole, line touch, exterior </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Inverted hole, line touch, exterior </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 50 -80 L 50 -60 40 -40 60 -40 50 -60 50 -80 80 -30 20 -30 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Inverted hole, line touch, exterior </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -10 L 10 -10 10 -90 90 -90 Z M 80 -30 L 50 -80 20 -30 Z" /> | |
<path fill-rule="evenodd" d="M 40 -40 L 50 -60 60 -40 Z" /> | |
<path fill-rule="evenodd" d="M 50 -80 L 50 -60" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Inverted hole, line touch, exterior </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 20 -30 L 80 -30 50 -80 Z" /> | |
<path fill-rule="evenodd" d="M 60 -40 L 40 -40 50 -60 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon/Hole - Exverted shell, point touch; exverted hole, point touch </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Exverted shell, point touch; exverted hole, point touch </desc><path class="geomA" fill-rule="evenodd" d="M 10 -10 L 10 -90 50 -50 90 -90 90 -10 50 -50 Z M 80 -60 L 50 -50 20 -60 20 -40 50 -50 80 -40 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Exverted shell, point touch; exverted hole, point touch </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 50 -50 L 10 -10 10 -90 Z M 20 -60 L 20 -40 50 -50 Z" /> | |
<path fill-rule="evenodd" d="M 90 -10 L 50 -50 90 -90 Z M 80 -40 L 80 -60 50 -50 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Exverted shell, point touch; exverted hole, point touch </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -90 L 50 -50 10 -10 Z M 20 -60 L 20 -40 50 -50 Z" /> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 50 -50 Z M 80 -40 L 80 -60 50 -50 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon/Hole - Exverted shell, point touch; exverted hole, line touch </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Exverted shell, point touch; exverted hole, line touch </desc><path class="geomA" fill-rule="evenodd" d="M 10 -10 L 10 -90 50 -50 90 -90 90 -10 50 -50 Z M 80 -60 L 60 -50 40 -50 20 -60 20 -40 40 -50 60 -50 80 -40 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Exverted shell, point touch; exverted hole, line touch </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 50 -50 L 10 -10 10 -90 Z M 20 -40 L 40 -50 20 -60 Z" /> | |
<path fill-rule="evenodd" d="M 90 -10 L 50 -50 90 -90 Z M 80 -40 L 80 -60 60 -50 Z" /> | |
<path fill-rule="evenodd" d="M 60 -50 L 50 -50" /> | |
<path fill-rule="evenodd" d="M 50 -50 L 40 -50" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Exverted shell, point touch; exverted hole, line touch </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -90 L 50 -50 10 -10 Z M 20 -60 L 20 -40 40 -50 Z" /> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 50 -50 Z M 80 -40 L 80 -60 60 -50 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon/Hole - Exverted shell, line touch; exverted hole, line touch </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Exverted shell, line touch; exverted hole, line touch </desc><path class="geomA" fill-rule="evenodd" d="M 10 -10 L 10 -90 40 -50 60 -50 90 -90 90 -10 60 -50 40 -50 Z M 80 -60 L 70 -50 30 -50 20 -60 20 -40 30 -50 70 -50 80 -40 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Exverted shell, line touch; exverted hole, line touch </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 40 -50 L 10 -10 10 -90 Z M 20 -40 L 30 -50 20 -60 Z" /> | |
<path fill-rule="evenodd" d="M 90 -10 L 60 -50 90 -90 Z M 80 -40 L 80 -60 70 -50 Z" /> | |
<path fill-rule="evenodd" d="M 40 -50 L 60 -50" /> | |
<path fill-rule="evenodd" d="M 70 -50 L 60 -50" /> | |
<path fill-rule="evenodd" d="M 40 -50 L 30 -50" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Exverted shell, line touch; exverted hole, line touch </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -90 L 40 -50 10 -10 Z M 20 -60 L 20 -40 30 -50 Z" /> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 60 -50 Z M 80 -40 L 80 -60 70 -50 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon/Hole - Adjacent </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Adjacent </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 50 -70 L 90 -70 90 -30 50 -30 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Adjacent </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -70 L 90 -30 90 -10 10 -10 10 -90 90 -90 Z" /> | |
<path fill-rule="evenodd" d="M 50 -70 L 90 -70" /> | |
<path fill-rule="evenodd" d="M 90 -30 L 50 -30 50 -70" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Adjacent </desc><path class="geomB" fill-rule="evenodd" d="M 90 -90 L 90 -70 50 -70 50 -30 90 -30 90 -10 10 -10 10 -90 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon/Holes - Adjacent holes </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Adjacent holes </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 30 -70 L 50 -70 50 -30 30 -30 Z M 70 -60 L 70 -40 50 -40 50 -60 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Adjacent holes </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 30 -70 L 30 -30 50 -30 50 -40 70 -40 70 -60 50 -60 50 -70 Z" /> | |
<path fill-rule="evenodd" d="M 50 -60 L 50 -40" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Adjacent holes </desc><path class="geomB" fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 30 -70 L 30 -30 50 -30 50 -40 70 -40 70 -60 50 -60 50 -70 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon/Holes - Exverted holes crossing at point </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Exverted holes crossing at point </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 80 -60 L 50 -50 20 -60 20 -40 50 -50 80 -40 Z M 60 -80 L 40 -80 50 -50 40 -20 60 -20 50 -50 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Exverted holes crossing at point </desc><path class="geomB" fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 50 -50 L 80 -40 80 -60 Z M 60 -80 L 40 -80 50 -50 Z M 20 -60 L 20 -40 50 -50 Z M 40 -20 L 60 -20 50 -50 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Exverted holes crossing at point </desc><path class="geomB" fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 40 -20 L 60 -20 50 -50 Z M 80 -40 L 80 -60 50 -50 Z M 60 -80 L 40 -80 50 -50 Z M 20 -60 L 20 -40 50 -50 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon/Holes - Exverted holes crossing at line </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Exverted holes crossing at line </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 80 -60 L 60 -50 50 -50 40 -50 20 -60 20 -40 40 -50 50 -50 60 -50 80 -40 Z M 60 -80 L 40 -80 50 -60 50 -50 50 -40 40 -20 60 -20 50 -40 50 -50 50 -60 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Exverted holes crossing at line </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 60 -50 L 80 -40 80 -60 Z M 20 -60 L 20 -40 40 -50 Z M 40 -80 L 50 -60 60 -80 Z M 40 -20 L 60 -20 50 -40 Z" /> | |
<path fill-rule="evenodd" d="M 60 -50 L 50 -50" /> | |
<path fill-rule="evenodd" d="M 50 -50 L 40 -50" /> | |
<path fill-rule="evenodd" d="M 50 -60 L 50 -50" /> | |
<path fill-rule="evenodd" d="M 50 -50 L 50 -40" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Exverted holes crossing at line </desc><path class="geomB" fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 60 -20 L 50 -40 40 -20 Z M 20 -40 L 40 -50 20 -60 Z M 80 -60 L 60 -50 80 -40 Z M 40 -80 L 50 -60 60 -80 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon - Zero area </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Zero area </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -90 10 -90 10 -10 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Zero area </desc><g class="geomB"> | |
<path fill="none" d="M 10 -90 L 90 -90" /> | |
<path fill="none" d="M 10 -90 L 10 -10" /> | |
</g></svg></td><td>POLYGON EMPTY</td></tr></table><hr/> | |
<h3>Polygon - Zero-width gore </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Zero-width gore </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 50 -50 90 -90 90 -10 10 -10 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Zero-width gore </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z" /> | |
<path fill-rule="evenodd" d="M 90 -90 L 50 -50" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Zero-width gore </desc><path class="geomB" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon - Zero-width gore splitting </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Zero-width gore splitting </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 10 -10 90 -90 90 -10 10 -10 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Zero-width gore splitting </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -10 L 10 -10 10 -90 90 -90 Z" /> | |
<path fill-rule="evenodd" d="M 90 -90 L 10 -10" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Zero-width gore splitting </desc><path class="geomB" fill-rule="evenodd" d="M 10 -10 L 10 -90 90 -90 90 -10 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon - Zero-width spike </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Zero-width spike </desc><path class="geomA" fill-rule="evenodd" d="M 10 -50 L 50 -50 90 -90 50 -50 50 -10 10 -10 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Zero-width spike </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 50 -50 L 50 -10 10 -10 10 -50 Z" /> | |
<path fill-rule="evenodd" d="M 50 -50 L 90 -90" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Zero-width spike </desc><path class="geomB" fill-rule="evenodd" d="M 10 -50 L 50 -50 50 -10 10 -10 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon - Zero-width spike along boundary </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Zero-width spike along boundary </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 80 -90 20 -90 90 -90 90 -10 10 -10 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Zero-width spike along boundary </desc><path class="geomB" fill-rule="evenodd" d="M 20 -90 L 80 -90 90 -90 90 -10 10 -10 10 -90 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Zero-width spike along boundary </desc><path class="geomB" fill-rule="evenodd" d="M 10 -90 L 20 -90 80 -90 90 -90 90 -10 10 -10 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon/Hole - Zero-width spike splitting hole</h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Zero-width spike splitting hole</desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 80 -80 L 20 -80 20 -50 50 -20 20 -50 20 -20 80 -20 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Zero-width spike splitting hole</desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 50 -20 L 80 -20 80 -80 20 -80 20 -50 20 -20 Z" /> | |
<path fill-rule="evenodd" d="M 20 -50 L 50 -20" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Zero-width spike splitting hole</desc><path class="geomB" fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 20 -20 L 50 -20 80 -20 80 -80 20 -80 20 -50 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon - Zero-width spike enclosing area </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Zero-width spike enclosing area </desc><path class="geomA" fill-rule="evenodd" d="M 10 -10 L 10 -90 60 -90 90 -50 60 -10 90 -50 60 -90 60 -10 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Zero-width spike enclosing area </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 60 -90 L 90 -50 60 -10 10 -10 10 -90 Z" /> | |
<path fill-rule="evenodd" d="M 60 -90 L 60 -10" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Zero-width spike enclosing area </desc><path class="geomB" fill-rule="evenodd" d="M 10 -10 L 10 -90 60 -90 60 -10 Z" /></svg></td></tr></table><hr/> | |
<h3>MultiPolygon - Adjacent </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Adjacent </desc><g class="geomA"> | |
<path fill-rule="evenodd" d="M 10 -90 L 50 -90 50 -10 10 -10 Z" /> | |
<path fill-rule="evenodd" d="M 90 -70 L 90 -30 50 -30 50 -70 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Adjacent </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 50 -70 L 90 -70 90 -30 50 -30 50 -10 10 -10 10 -90 50 -90 Z" /> | |
<path fill-rule="evenodd" d="M 50 -70 L 50 -30" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Adjacent </desc><path class="geomB" fill-rule="evenodd" d="M 50 -90 L 50 -70 90 -70 90 -30 50 -30 50 -10 10 -10 10 -90 Z" /></svg></td></tr></table><hr/> | |
<h3>MultiPolygon - Exverted crossing at point </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Exverted crossing at point </desc><g class="geomA"> | |
<path fill-rule="evenodd" d="M 10 -80 L 50 -50 90 -80 90 -20 50 -50 10 -20 Z" /> | |
<path fill-rule="evenodd" d="M 20 -90 L 80 -90 50 -50 80 -10 20 -10 50 -50 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Exverted crossing at point </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 50 -50 L 80 -10 20 -10 Z" /> | |
<path fill-rule="evenodd" d="M 10 -80 L 50 -50 10 -20 Z" /> | |
<path fill-rule="evenodd" d="M 50 -50 L 90 -80 90 -20 Z" /> | |
<path fill-rule="evenodd" d="M 20 -90 L 80 -90 50 -50 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Exverted crossing at point </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 20 -10 L 50 -50 80 -10 Z" /> | |
<path fill-rule="evenodd" d="M 10 -20 L 10 -80 50 -50 Z" /> | |
<path fill-rule="evenodd" d="M 90 -20 L 50 -50 90 -80 Z" /> | |
<path fill-rule="evenodd" d="M 50 -50 L 20 -90 80 -90 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>MultiPolygon - Exverted crossing at line </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Exverted crossing at line </desc><g class="geomA"> | |
<path fill-rule="evenodd" d="M 10 -80 L 40 -50 50 -50 60 -50 90 -80 90 -20 60 -50 50 -50 40 -50 10 -20 Z" /> | |
<path fill-rule="evenodd" d="M 20 -90 L 80 -90 50 -60 50 -50 50 -40 80 -10 20 -10 50 -40 50 -50 50 -60 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Exverted crossing at line </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 50 -40 L 80 -10 20 -10 Z" /> | |
<path fill-rule="evenodd" d="M 10 -80 L 40 -50 10 -20 Z" /> | |
<path fill-rule="evenodd" d="M 60 -50 L 90 -80 90 -20 Z" /> | |
<path fill-rule="evenodd" d="M 20 -90 L 80 -90 50 -60 Z" /> | |
<path fill-rule="evenodd" d="M 40 -50 L 50 -50" /> | |
<path fill-rule="evenodd" d="M 50 -50 L 60 -50" /> | |
<path fill-rule="evenodd" d="M 50 -60 L 50 -50" /> | |
<path fill-rule="evenodd" d="M 50 -50 L 50 -40" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Exverted crossing at line </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 20 -10 L 50 -40 80 -10 Z" /> | |
<path fill-rule="evenodd" d="M 10 -20 L 10 -80 40 -50 Z" /> | |
<path fill-rule="evenodd" d="M 90 -20 L 60 -50 90 -80 Z" /> | |
<path fill-rule="evenodd" d="M 50 -60 L 20 -90 80 -90 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon - Bowtie (Figure 8)</h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Bowtie (Figure 8)</desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -10 90 -90 10 -10 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Bowtie (Figure 8)</desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -10 L 10 -90 50 -50 Z" /> | |
<path fill-rule="evenodd" d="M 90 -10 L 50 -50 90 -90 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Bowtie (Figure 8)</desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -90 L 50 -50 10 -10 Z" /> | |
<path fill-rule="evenodd" d="M 50 -50 L 90 -90 90 -10 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon - Bowtie Multiple</h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Bowtie Multiple</desc><path class="geomA" fill-rule="evenodd" d="M 40 -90 L 60 -90 10 -40 10 -60 60 -10 40 -10 90 -60 90 -40 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Bowtie Multiple</desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 50 -20 L 60 -10 40 -10 Z" /> | |
<path fill-rule="evenodd" d="M 20 -50 L 10 -40 10 -60 Z" /> | |
<path fill-rule="evenodd" d="M 50 -20 L 20 -50 50 -80 80 -50 Z" /> | |
<path fill-rule="evenodd" d="M 90 -60 L 90 -40 80 -50 Z" /> | |
<path fill-rule="evenodd" d="M 60 -90 L 50 -80 40 -90 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Bowtie Multiple</desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 20 -50 L 50 -80 80 -50 50 -20 Z" /> | |
<path fill-rule="evenodd" d="M 20 -50 L 10 -40 10 -60 Z" /> | |
<path fill-rule="evenodd" d="M 50 -20 L 60 -10 40 -10 Z" /> | |
<path fill-rule="evenodd" d="M 80 -50 L 90 -60 90 -40 Z" /> | |
<path fill-rule="evenodd" d="M 50 -80 L 40 -90 60 -90 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon - Bowtie, self-overlap</h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Bowtie, self-overlap</desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 70 -90 70 -10 90 -10 90 -50 40 -50 40 -30 80 -30 80 -20 10 -20 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Bowtie, self-overlap</desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 70 -10 L 70 -20 80 -20 80 -30 70 -30 70 -50 90 -50 90 -10 Z" /> | |
<path fill-rule="evenodd" d="M 10 -20 L 10 -90 70 -90 70 -50 40 -50 40 -30 70 -30 70 -20 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Bowtie, self-overlap</desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -90 L 70 -90 70 -50 40 -50 40 -30 70 -30 70 -20 10 -20 Z" /> | |
<path fill-rule="evenodd" d="M 70 -20 L 80 -20 80 -30 70 -30 70 -50 90 -50 90 -10 70 -10 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon - Self-overlap - interior </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Self-overlap - interior </desc><path class="geomA" fill-rule="evenodd" d="M 10 -70 L 90 -70 90 -50 30 -50 30 -30 50 -30 50 -90 70 -90 70 -10 10 -10 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Self-overlap - interior </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -70 L 50 -70 50 -50 70 -50 70 -10 10 -10 Z M 30 -50 L 30 -30 50 -30 50 -50 Z" /> | |
<path fill-rule="evenodd" d="M 50 -90 L 70 -90 70 -70 50 -70 Z" /> | |
<path fill-rule="evenodd" d="M 90 -70 L 90 -50 70 -50 70 -70 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Self-overlap - interior </desc><path class="geomB" fill-rule="evenodd" d="M 10 -70 L 50 -70 50 -90 70 -90 70 -70 90 -70 90 -50 70 -50 70 -10 10 -10 Z M 50 -50 L 30 -50 30 -30 50 -30 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon - Self-overlap Multiple </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Self-overlap Multiple </desc><path class="geomA" fill-rule="evenodd" d="M 10 -50 L 80 -50 80 -70 40 -70 40 -30 30 -30 30 -80 90 -80 90 -40 20 -40 20 -20 50 -20 50 -90 60 -90 60 -10 10 -10 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Self-overlap Multiple </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 30 -50 L 30 -40 20 -40 20 -20 50 -20 50 -40 60 -40 60 -10 10 -10 10 -50 Z" /> | |
<path fill-rule="evenodd" d="M 50 -80 L 50 -70 40 -70 40 -50 30 -50 30 -80 Z" /> | |
<path fill-rule="evenodd" d="M 60 -90 L 60 -80 50 -80 50 -90 Z" /> | |
<path fill-rule="evenodd" d="M 90 -40 L 60 -40 60 -50 80 -50 80 -70 60 -70 60 -80 90 -80 Z" /> | |
<path fill-rule="evenodd" d="M 30 -30 L 30 -40 40 -40 40 -30 Z" /> | |
<path fill-rule="evenodd" d="M 40 -40 L 40 -50 50 -50 50 -40 Z" /> | |
<path fill-rule="evenodd" d="M 60 -70 L 60 -50 50 -50 50 -70 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Self-overlap Multiple </desc><path class="geomB" fill-rule="evenodd" d="M 10 -50 L 30 -50 30 -80 50 -80 50 -90 60 -90 60 -80 90 -80 90 -40 60 -40 60 -10 10 -10 Z M 50 -40 L 40 -40 40 -30 30 -30 30 -40 20 -40 20 -20 50 -20 Z M 40 -50 L 50 -50 50 -70 40 -70 Z M 60 -50 L 80 -50 80 -70 60 -70 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon - Self-overlap; Pos and Neg winding </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Self-overlap; Pos and Neg winding </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 50 -90 50 -30 70 -30 70 -50 30 -50 30 -70 90 -70 90 -10 10 -10 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Self-overlap; Pos and Neg winding </desc><path class="geomB" fill-rule="evenodd" d="M 50 -90 L 50 -70 90 -70 90 -10 10 -10 10 -90 Z M 30 -70 L 30 -50 50 -50 50 -70 Z M 50 -30 L 70 -30 70 -50 50 -50 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Self-overlap; Pos and Neg winding </desc><path class="geomB" fill-rule="evenodd" d="M 10 -90 L 50 -90 50 -70 90 -70 90 -10 10 -10 Z M 50 -50 L 50 -30 70 -30 70 -50 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon - Self-overlap; double Pos and single Neg winding </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Self-overlap; double Pos and single Neg winding </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 70 -90 70 -10 20 -10 20 -80 60 -80 60 -20 30 -20 30 -70 51 -70 50 -30 90 -30 90 -60 10 -60 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Self-overlap; double Pos and single Neg winding </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 70 -90 L 70 -60 60 -60 60 -80 20 -80 20 -60 10 -60 10 -90 Z" /> | |
<path fill-rule="evenodd" d="M 90 -30 L 70 -30 70 -60 90 -60 Z" /> | |
<path fill-rule="evenodd" d="M 20 -10 L 20 -60 30 -60 30 -20 60 -20 60 -30 70 -30 70 -10 Z" /> | |
<path fill-rule="evenodd" d="M 50 -30 L 50.75 -60 60 -60 60 -30 Z" /> | |
<path fill-rule="evenodd" d="M 51 -70 L 50.75 -60 30 -60 30 -70 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Self-overlap; double Pos and single Neg winding </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -90 L 70 -90 70 -60 60 -60 60 -30 70 -30 70 -10 20 -10 20 -60 10 -60 Z" /> | |
<path fill-rule="evenodd" d="M 70 -30 L 70 -60 90 -60 90 -30 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon - Self-overlap - Pos and Neg winding </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Self-overlap - Pos and Neg winding </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 60 -10 40 -30 70 -60 60 -80 40 -60 60 -60 40 -80 30 -60 60 -30 40 -10 10 -10 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Self-overlap - Pos and Neg winding </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -10 L 60 -10 50 -20 40 -10 10 -10 10 -90 90 -90 Z M 60 -30 L 50 -40 40 -30 50 -20 Z M 70 -60 L 60 -80 50 -70 40 -80 30 -60 50 -40 Z" /> | |
<path fill-rule="evenodd" d="M 40 -60 L 50 -70 60 -60 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Self-overlap - Pos and Neg winding </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 60 -10 50 -20 40 -10 10 -10 Z M 50 -40 L 70 -60 60 -80 50 -70 40 -80 30 -60 Z" /> | |
<path fill-rule="evenodd" d="M 50 -70 L 60 -60 40 -60 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon - Self-overlap; exterior </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Self-overlap; exterior </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 10 -70 80 -70 80 -40 10 -40 10 -10 90 -10 90 -90 60 -90 60 -20 30 -20 30 -90 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Self-overlap; exterior </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -10 L 10 -10 10 -40 30 -40 30 -20 60 -20 60 -40 80 -40 80 -70 60 -70 60 -90 90 -90 Z" /> | |
<path fill-rule="evenodd" d="M 30 -70 L 60 -70 60 -40 30 -40 Z" /> | |
<path fill-rule="evenodd" d="M 10 -70 L 10 -90 30 -90 30 -70 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Self-overlap; exterior </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -90 L 30 -90 30 -70 10 -70 Z" /> | |
<path fill-rule="evenodd" d="M 30 -40 L 30 -20 60 -20 60 -40 80 -40 80 -70 60 -70 60 -90 90 -90 90 -10 10 -10 10 -40 Z" /> | |
<path fill-rule="evenodd" d="M 30 -70 L 60 -70 60 -40 30 -40 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon - Self-overlap; Spiral with Pos winding </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Self-overlap; Spiral with Pos winding </desc><path class="geomA" fill-rule="evenodd" d="M 60 -10 L 10 -10 10 -90 90 -90 90 -20 20 -20 20 -80 80 -80 80 -30 30 -30 30 -70 70 -70 70 -40 40 -40 40 -60 60 -60 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Self-overlap; Spiral with Pos winding </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -20 60 -20 60 -10 10 -10 Z M 60 -30 L 80 -30 80 -80 20 -80 20 -20 60 -20 Z" /> | |
<path fill-rule="evenodd" d="M 30 -70 L 70 -70 70 -40 60 -40 60 -30 30 -30 Z M 60 -60 L 40 -60 40 -40 60 -40 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon - Self-overlap; Spiral with Pos winding </desc><path class="geomB" fill-rule="evenodd" d="M 60 -10 L 10 -10 10 -90 90 -90 90 -20 60 -20 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon/Hole - Bowties </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Bowties </desc><path class="geomA" fill-rule="evenodd" d="M 10 -10 L 90 -10 10 -90 90 -90 Z M 70 -80 L 30 -80 70 -20 30 -20 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Bowties </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -10 L 50 -50 90 -10 Z M 30 -20 L 70 -20 50 -50 Z" /> | |
<path fill-rule="evenodd" d="M 90 -90 L 50 -50 10 -90 Z M 70 -80 L 30 -80 50 -50 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Bowties </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -90 L 90 -90 50 -50 Z M 70 -80 L 30 -80 50 -50 Z" /> | |
<path fill-rule="evenodd" d="M 50 -50 L 90 -10 10 -10 Z M 30 -20 L 70 -20 50 -50 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon/Hole - Bowties, overlap </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Bowties, overlap </desc><path class="geomA" fill-rule="evenodd" d="M 10 -10 L 90 -10 10 -90 90 -90 Z M 50 -70 L 10 -70 50 -30 10 -30 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Bowties, overlap </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -30 L 30 -50 40 -40 30 -30 Z" /> | |
<path fill-rule="evenodd" d="M 10 -70 L 30 -70 40 -60 30 -50 Z" /> | |
<path fill-rule="evenodd" d="M 10 -90 L 90 -90 50 -50 40 -60 50 -70 30 -70 Z" /> | |
<path fill-rule="evenodd" d="M 90 -10 L 10 -10 30 -30 50 -30 40 -40 50 -50 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Bowties, overlap </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 40 -60 L 50 -70 30 -70 10 -90 90 -90 50 -50 Z" /> | |
<path fill-rule="evenodd" d="M 30 -30 L 50 -30 40 -40 50 -50 90 -10 10 -10 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon/Hole - Hole Self-overlap - interior </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Hole Self-overlap - interior </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 80 -70 L 20 -70 20 -20 70 -20 70 -80 50 -80 50 -30 30 -30 30 -50 80 -50 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Hole Self-overlap - interior </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 70 -50 L 80 -50 80 -70 70 -70 70 -80 50 -80 50 -70 20 -70 20 -20 70 -20 Z" /> | |
<path fill-rule="evenodd" d="M 30 -50 L 50 -50 50 -30 30 -30 Z" /> | |
<path fill-rule="evenodd" d="M 70 -70 L 70 -50 50 -50 50 -70 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Hole Self-overlap - interior </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 20 -70 L 20 -20 70 -20 70 -50 80 -50 80 -70 70 -70 70 -80 50 -80 50 -70 Z" /> | |
<path fill-rule="evenodd" d="M 50 -30 L 30 -30 30 -50 50 -50 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon/Hole - Hole Self-overlap - Spiral with Neg winding </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="0 -100 100 100" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Hole Self-overlap - Spiral with Neg winding </desc><path class="geomA" fill-rule="evenodd" d="M 0 -100 L 100 -100 100 0 0 0 Z M 60 -10 L 60 -60 40 -60 40 -40 70 -40 70 -70 30 -70 30 -30 80 -30 80 -80 20 -80 20 -20 90 -20 90 -90 10 -90 10 -10 Z" /></svg></td><td><svg width="200" height="200" viewBox="0 -100 100 100" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Hole Self-overlap - Spiral with Neg winding </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 100 0 L 0 0 0 -100 100 -100 Z M 90 -20 L 90 -90 10 -90 10 -10 60 -10 60 -20 Z" /> | |
<path fill-rule="evenodd" d="M 20 -80 L 80 -80 80 -30 60 -30 60 -20 20 -20 Z M 60 -40 L 70 -40 70 -70 30 -70 30 -30 60 -30 Z" /> | |
<path fill-rule="evenodd" d="M 60 -60 L 60 -40 40 -40 40 -60 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="0 -100 100 100" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Hole Self-overlap - Spiral with Neg winding </desc><path class="geomB" fill-rule="evenodd" d="M 100 -100 L 100 0 0 0 0 -100 Z M 60 -20 L 90 -20 90 -90 10 -90 10 -10 60 -10 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon/Hole - Hole Self-overlap - exterior </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Hole Self-overlap - exterior </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 80 -80 L 60 -80 60 -30 40 -30 40 -80 20 -80 20 -20 80 -20 80 -40 30 -40 30 -60 80 -60 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Hole Self-overlap - exterior </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 60 -80 L 60 -60 80 -60 80 -80 Z M 40 -60 L 40 -80 20 -80 20 -20 80 -20 80 -40 60 -40 60 -60 Z" /> | |
<path fill-rule="evenodd" d="M 40 -30 L 40 -40 60 -40 60 -30 Z" /> | |
<path fill-rule="evenodd" d="M 30 -40 L 30 -60 40 -60 40 -40 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Hole Self-overlap - exterior </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 40 -80 L 20 -80 20 -20 80 -20 80 -40 60 -40 60 -60 40 -60 Z M 80 -60 L 80 -80 60 -80 60 -60 Z" /> | |
<path fill-rule="evenodd" d="M 60 -30 L 40 -30 40 -40 60 -40 Z" /> | |
<path fill-rule="evenodd" d="M 30 -40 L 30 -60 40 -60 40 -40 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon/Hole - Outside </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 40 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Outside </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 50 -90 50 -10 10 -10 Z M 60 -80 L 90 -80 90 -20 60 -20 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 40 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Outside </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 50 -10 L 10 -10 10 -90 50 -90 Z" /> | |
<path fill-rule="evenodd" d="M 90 -20 L 60 -20 60 -80 90 -80 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 40 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Outside </desc><path class="geomB" fill-rule="evenodd" d="M 50 -90 L 50 -10 10 -10 10 -90 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon/Hole - Overlap </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 50 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Overlap </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 60 -90 60 -10 10 -10 Z M 30 -70 L 90 -70 90 -30 30 -30 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 50 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Overlap </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -70 L 90 -30 60 -30 60 -70 Z" /> | |
<path fill-rule="evenodd" d="M 60 -10 L 10 -10 10 -90 60 -90 60 -70 30 -70 30 -30 60 -30 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 50 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Overlap </desc><path class="geomB" fill-rule="evenodd" d="M 60 -90 L 60 -70 30 -70 30 -30 60 -30 60 -10 10 -10 10 -90 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon/Hole - Equal </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Equal </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 10 -90 L 90 -90 90 -10 10 -10 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Equal </desc><path class="geomB" fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z" /></svg></td><td>POLYGON EMPTY</td></tr></table><hr/> | |
<h3>Polygon/Hole - Covers </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="30 -70 40 40" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Covers </desc><path class="geomA" fill-rule="evenodd" d="M 30 -70 L 70 -70 70 -30 30 -30 Z M 10 -90 L 90 -90 90 -10 10 -10 Z" /></svg></td><td><svg width="200" height="200" viewBox="30 -70 40 40" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Covers </desc><path class="geomB" fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 30 -30 L 70 -30 70 -70 30 -70 Z" /></svg></td><td>POLYGON EMPTY</td></tr></table><hr/> | |
<h3>Polygon/Hole - Disconnected interior </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Disconnected interior </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 30 -30 L 50 -90 90 -50 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Disconnected interior </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -50 L 50 -90 90 -90 Z" /> | |
<path fill-rule="evenodd" d="M 90 -10 L 10 -10 10 -90 50 -90 30 -30 90 -50 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Disconnected interior </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 50 -90 L 30 -30 90 -50 90 -10 10 -10 10 -90 Z" /> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -50 50 -90 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon/Hole - Collapsed shell </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Collapsed shell </desc><path class="geomA" fill-rule="evenodd" d="M 10 -10 L 10 -90 90 -90 10 -90 Z M 20 -80 L 60 -80 60 -40 20 -40 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Collapsed shell </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 60 -80 L 60 -40 20 -40 20 -80 Z" /> | |
<path fill-rule="evenodd" d="M 10 -10 L 10 -90" /> | |
<path fill-rule="evenodd" d="M 10 -90 L 90 -90" /> | |
</g></svg></td><td>POLYGON EMPTY</td></tr></table><hr/> | |
<h3>Polygon/Hole - Collapsed hole </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Collapsed hole </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 80 -80 L 20 -80 20 -20 20 -80 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Collapsed hole </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z" /> | |
<path fill-rule="evenodd" d="M 80 -80 L 20 -80" /> | |
<path fill-rule="evenodd" d="M 20 -80 L 20 -20" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Hole - Collapsed hole </desc><path class="geomB" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon/Holes - Overlap </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Overlap </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 80 -80 L 80 -30 30 -30 30 -80 Z M 20 -20 L 20 -70 70 -70 70 -20 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Overlap </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 80 -30 L 80 -80 30 -80 30 -70 20 -70 20 -20 70 -20 70 -30 Z" /> | |
<path fill-rule="evenodd" d="M 30 -30 L 30 -70 70 -70 70 -30 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Overlap </desc><path class="geomB" fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 20 -20 L 70 -20 70 -30 80 -30 80 -80 30 -80 30 -70 20 -70 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon/Holes - Cover Exactly </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Cover Exactly </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 50 -50 L 50 -10 10 -10 10 -50 Z M 50 -50 L 90 -50 90 -10 50 -10 Z M 50 -50 L 10 -50 10 -90 50 -90 Z M 50 -50 L 50 -90 90 -90 90 -50 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Cover Exactly </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -90 L 50 -90 90 -90 90 -50 90 -10 50 -10 10 -10 10 -50 Z" /> | |
<path fill-rule="evenodd" d="M 50 -50 L 50 -10" /> | |
<path fill-rule="evenodd" d="M 10 -50 L 50 -50" /> | |
<path fill-rule="evenodd" d="M 50 -50 L 90 -50" /> | |
<path fill-rule="evenodd" d="M 50 -90 L 50 -50" /> | |
</g></svg></td><td>POLYGON EMPTY</td></tr></table><hr/> | |
<h3>Polygon/Holes - Nested </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Nested </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 30 -70 L 70 -70 70 -30 30 -30 Z M 20 -80 L 80 -80 80 -20 20 -20 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Nested </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -10 L 10 -10 10 -90 90 -90 Z M 80 -20 L 80 -80 20 -80 20 -20 Z" /> | |
<path fill-rule="evenodd" d="M 70 -30 L 30 -30 30 -70 70 -70 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Nested </desc><path class="geomB" fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 20 -80 L 20 -20 80 -20 80 -80 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon/Holes - Disconnected interior, point touch</h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Disconnected interior, point touch</desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 30 -60 L 70 -60 50 -81 Z M 20 -50 L 30 -60 50 -20 Z M 80 -50 L 70 -60 50 -20 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Disconnected interior, point touch</desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -10 L 10 -10 10 -90 90 -90 Z M 80 -50 L 70 -60 50 -81 30 -60 20 -50 50 -20 Z" /> | |
<path fill-rule="evenodd" d="M 70 -60 L 50 -20 30 -60 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Disconnected interior, point touch</desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 20 -50 L 50 -20 80 -50 70 -60 50 -81 30 -60 Z" /> | |
<path fill-rule="evenodd" d="M 30 -60 L 70 -60 50 -20 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon/Holes - Disconnected interior, point-line touch </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Disconnected interior, point-line touch </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 20 -60 L 70 -60 70 -80 Z M 30 -30 L 30 -60 60 -30 Z M 80 -40 L 80 -70 50 -40 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Disconnected interior, point-line touch </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 80 -40 L 80 -70 70 -60 70 -80 20 -60 30 -60 30 -30 60 -30 50 -40 Z" /> | |
<path fill-rule="evenodd" d="M 70 -60 L 50 -40 30 -60 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Disconnected interior, point-line touch </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 30 -30 L 60 -30 50 -40 80 -40 80 -70 70 -60 70 -80 20 -60 30 -60 Z" /> | |
<path fill-rule="evenodd" d="M 30 -60 L 70 -60 50 -40 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon/Holes - Disconnected interior, line touch </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Disconnected interior, line touch </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 20 -70 L 30 -60 70 -60 80 -70 50 -80 Z M 20 -20 L 20 -70 50 -40 50 -20 Z M 80 -20 L 80 -70 50 -40 50 -20 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Disconnected interior, line touch </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 50 -80 L 20 -70 20 -20 50 -20 80 -20 80 -70 Z" /> | |
<path fill-rule="evenodd" d="M 70 -60 L 50 -40 30 -60 Z" /> | |
<path fill-rule="evenodd" d="M 20 -70 L 30 -60" /> | |
<path fill-rule="evenodd" d="M 70 -60 L 80 -70" /> | |
<path fill-rule="evenodd" d="M 50 -40 L 50 -20" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Disconnected interior, line touch </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 20 -20 L 50 -20 80 -20 80 -70 50 -80 20 -70 Z" /> | |
<path fill-rule="evenodd" d="M 30 -60 L 70 -60 50 -40 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon/Holes - Disconnected interior, overlapping bowtie holes </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Disconnected interior, overlapping bowtie holes </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 70 -80 L 20 -80 70 -20 20 -20 Z M 80 -70 L 40 -70 80 -30 40 -30 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Disconnected interior, overlapping bowtie holes </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -10 L 10 -10 10 -90 90 -90 Z M 80 -70 L 61.666666666666664 -70 70 -80 20 -80 45 -50 20 -20 70 -20 61.666666666666664 -30 80 -30 60 -50 Z" /> | |
<path fill-rule="evenodd" d="M 40 -30 L 51.81818181818182 -41.81818181818182 61.666666666666664 -30 Z" /> | |
<path fill-rule="evenodd" d="M 60 -50 L 51.81818181818182 -41.81818181818182 45 -50 51.81818181818182 -58.18181818181818 Z" /> | |
<path fill-rule="evenodd" d="M 61.666666666666664 -70 L 51.81818181818182 -58.18181818181818 40 -70 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Disconnected interior, overlapping bowtie holes </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 20 -20 L 70 -20 61.666666666666664 -30 80 -30 60 -50 80 -70 61.666666666666664 -70 70 -80 20 -80 45 -50 Z" /> | |
<path fill-rule="evenodd" d="M 51.81818181818182 -41.81818181818182 L 45 -50 51.81818181818182 -58.18181818181818 60 -50 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>Polygon/Holes - Disconnected interior, overlapping zero-area holes </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Disconnected interior, overlapping zero-area holes </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 80 -70 L 30 -70 30 -20 30 -70 Z M 70 -80 L 70 -30 20 -30 70 -30 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Disconnected interior, overlapping zero-area holes </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 30 -70 L 30 -30 70 -30 70 -70 Z" /> | |
<path fill-rule="evenodd" d="M 80 -70 L 70 -70" /> | |
<path fill-rule="evenodd" d="M 30 -30 L 30 -20" /> | |
<path fill-rule="evenodd" d="M 70 -80 L 70 -70" /> | |
<path fill-rule="evenodd" d="M 30 -30 L 20 -30" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Disconnected interior, overlapping zero-area holes </desc><path class="geomB" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z" /></svg></td></tr></table><hr/> | |
<h3>Polygon/Holes - Disconnected interior, overlapping holes </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Disconnected interior, overlapping holes </desc><path class="geomA" fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 80 -70 L 30 -70 30 -20 40 -20 40 -60 80 -60 Z M 70 -80 L 60 -80 60 -40 20 -40 20 -30 70 -30 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Disconnected interior, overlapping holes </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -10 L 10 -90 90 -90 90 -10 Z M 40 -20 L 40 -30 70 -30 70 -60 80 -60 80 -70 70 -70 70 -80 60 -80 60 -70 30 -70 30 -40 20 -40 20 -30 30 -30 30 -20 Z" /> | |
<path fill-rule="evenodd" d="M 40 -40 L 40 -30 30 -30 30 -40 Z" /> | |
<path fill-rule="evenodd" d="M 60 -40 L 40 -40 40 -60 60 -60 Z" /> | |
<path fill-rule="evenodd" d="M 60 -60 L 60 -70 70 -70 70 -60 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>Polygon/Holes - Disconnected interior, overlapping holes </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 80 -70 L 70 -70 70 -80 60 -80 60 -70 30 -70 30 -40 20 -40 20 -30 30 -30 30 -20 40 -20 40 -30 70 -30 70 -60 80 -60 Z" /> | |
<path fill-rule="evenodd" d="M 60 -60 L 60 -40 40 -40 40 -60 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>MultiPolygon - Nested Polygons </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Nested Polygons </desc><g class="geomA"> | |
<path fill-rule="evenodd" d="M 30 -70 L 70 -70 70 -30 30 -30 Z" /> | |
<path fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Nested Polygons </desc><path class="geomB" fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z M 30 -30 L 70 -30 70 -70 30 -70 Z" /></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Nested Polygons </desc><path class="geomB" fill-rule="evenodd" d="M 90 -90 L 90 -10 10 -10 10 -90 Z" /></svg></td></tr></table><hr/> | |
<h3>MultiPolygon - Multiple Nested Polygons </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Multiple Nested Polygons </desc><g class="geomA"> | |
<path fill-rule="evenodd" d="M 40 -60 L 60 -60 60 -40 40 -40 Z" /> | |
<path fill-rule="evenodd" d="M 30 -70 L 70 -70 70 -30 30 -30 Z" /> | |
<path fill-rule="evenodd" d="M 20 -80 L 80 -80 80 -20 20 -20 Z" /> | |
<path fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Multiple Nested Polygons </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -10 L 10 -10 10 -90 90 -90 Z M 80 -20 L 80 -80 20 -80 20 -20 Z" /> | |
<path fill-rule="evenodd" d="M 70 -30 L 30 -30 30 -70 70 -70 Z M 60 -40 L 60 -60 40 -60 40 -40 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Multiple Nested Polygons </desc><path class="geomB" fill-rule="evenodd" d="M 90 -10 L 10 -10 10 -90 90 -90 Z" /></svg></td></tr></table><hr/> | |
<h3>MultiPolygon - Overlapping Polygons </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Overlapping Polygons </desc><g class="geomA"> | |
<path fill-rule="evenodd" d="M 10 -90 L 60 -90 60 -10 10 -10 Z" /> | |
<path fill-rule="evenodd" d="M 90 -80 L 90 -20 40 -20 40 -80 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Overlapping Polygons </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 90 -80 L 90 -20 60 -20 60 -80 Z" /> | |
<path fill-rule="evenodd" d="M 60 -10 L 10 -10 10 -90 60 -90 60 -80 40 -80 40 -20 60 -20 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Overlapping Polygons </desc><path class="geomB" fill-rule="evenodd" d="M 60 -90 L 60 -80 90 -80 90 -20 60 -20 60 -10 10 -10 10 -90 Z" /></svg></td></tr></table><hr/> | |
<h3>MultiPolygon - Multiple Overlapping Polygons </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Multiple Overlapping Polygons </desc><g class="geomA"> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -30 30 -30 30 -90 Z" /> | |
<path fill-rule="evenodd" d="M 20 -20 L 20 -80 80 -80 80 -20 Z" /> | |
<path fill-rule="evenodd" d="M 10 -10 L 10 -70 70 -70 70 -10 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Multiple Overlapping Polygons </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -10 L 10 -70 20 -70 20 -20 70 -20 70 -10 Z" /> | |
<path fill-rule="evenodd" d="M 30 -80 L 30 -70 20 -70 20 -80 Z" /> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -30 80 -30 80 -80 30 -80 30 -90 Z" /> | |
<path fill-rule="evenodd" d="M 70 -20 L 70 -30 80 -30 80 -20 Z" /> | |
<path fill-rule="evenodd" d="M 30 -30 L 30 -70 70 -70 70 -30 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Multiple Overlapping Polygons </desc><path class="geomB" fill-rule="evenodd" d="M 10 -70 L 20 -70 20 -80 30 -80 30 -90 90 -90 90 -30 80 -30 80 -20 70 -20 70 -10 10 -10 Z" /></svg></td></tr></table><hr/> | |
<h3>MultiPolygon - Multiple Overlapping Polygons (5) </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Multiple Overlapping Polygons (5) </desc><g class="geomA"> | |
<path fill-rule="evenodd" d="M 20 -90 L 80 -90 80 -60 20 -60 Z" /> | |
<path fill-rule="evenodd" d="M 30 -70 L 70 -70 70 -30 30 -30 Z" /> | |
<path fill-rule="evenodd" d="M 10 -80 L 40 -80 40 -20 10 -20 Z" /> | |
<path fill-rule="evenodd" d="M 20 -10 L 20 -40 80 -40 80 -10 Z" /> | |
<path fill-rule="evenodd" d="M 90 -80 L 90 -20 60 -20 60 -80 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Multiple Overlapping Polygons (5) </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 80 -90 L 80 -80 60 -80 60 -70 40 -70 40 -80 20 -80 20 -90 Z" /> | |
<path fill-rule="evenodd" d="M 90 -20 L 80 -20 80 -40 70 -40 70 -60 80 -60 80 -80 90 -80 Z" /> | |
<path fill-rule="evenodd" d="M 20 -10 L 20 -20 40 -20 40 -30 60 -30 60 -20 80 -20 80 -10 Z" /> | |
<path fill-rule="evenodd" d="M 10 -80 L 20 -80 20 -60 30 -60 30 -40 20 -40 20 -20 10 -20 Z" /> | |
<path fill-rule="evenodd" d="M 40 -40 L 40 -30 30 -30 30 -40 Z" /> | |
<path fill-rule="evenodd" d="M 60 -40 L 70 -40 70 -30 60 -30 Z" /> | |
<path fill-rule="evenodd" d="M 40 -40 L 40 -60 60 -60 60 -40 Z" /> | |
<path fill-rule="evenodd" d="M 40 -60 L 30 -60 30 -70 40 -70 Z" /> | |
<path fill-rule="evenodd" d="M 70 -60 L 60 -60 60 -70 70 -70 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Multiple Overlapping Polygons (5) </desc><path class="geomB" fill-rule="evenodd" d="M 10 -20 L 10 -80 20 -80 20 -90 80 -90 80 -80 90 -80 90 -20 80 -20 80 -10 20 -10 20 -20 Z" /></svg></td></tr></table><hr/> | |
<h3>MultiPolygon - Polygon/Hole-overlap overlaps Polygon covering hole </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Polygon/Hole-overlap overlaps Polygon covering hole </desc><g class="geomA"> | |
<path fill-rule="evenodd" d="M 10 -90 L 60 -90 60 -10 10 -10 Z M 30 -70 L 80 -70 80 -30 30 -30 Z" /> | |
<path fill-rule="evenodd" d="M 90 -80 L 90 -20 20 -20 20 -80 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Polygon/Hole-overlap overlaps Polygon covering hole </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 60 -20 L 60 -30 80 -30 80 -70 60 -70 60 -80 90 -80 90 -20 Z" /> | |
<path fill-rule="evenodd" d="M 10 -10 L 10 -90 60 -90 60 -80 20 -80 20 -20 60 -20 60 -10 Z" /> | |
<path fill-rule="evenodd" d="M 60 -30 L 30 -30 30 -70 60 -70 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Polygon/Hole-overlap overlaps Polygon covering hole </desc><path class="geomB" fill-rule="evenodd" d="M 60 -80 L 90 -80 90 -20 60 -20 60 -10 10 -10 10 -90 60 -90 Z" /></svg></td></tr></table><hr/> | |
<h3>MultiPolygon - Polygon/Hole-overlap overlaps Polygon inside hole </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 70 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Polygon/Hole-overlap overlaps Polygon inside hole </desc><g class="geomA"> | |
<path fill-rule="evenodd" d="M 10 -90 L 60 -90 60 -10 10 -10 Z M 20 -80 L 90 -80 90 -20 20 -20 Z" /> | |
<path fill-rule="evenodd" d="M 80 -70 L 80 -30 30 -30 30 -70 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 70 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Polygon/Hole-overlap overlaps Polygon inside hole </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 60 -20 L 60 -30 80 -30 80 -70 60 -70 60 -80 90 -80 90 -20 Z" /> | |
<path fill-rule="evenodd" d="M 10 -10 L 10 -90 60 -90 60 -80 20 -80 20 -20 60 -20 60 -10 Z" /> | |
<path fill-rule="evenodd" d="M 60 -30 L 30 -30 30 -70 60 -70 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 70 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Polygon/Hole-overlap overlaps Polygon inside hole </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 60 -80 L 20 -80 20 -20 60 -20 60 -10 10 -10 10 -90 60 -90 Z" /> | |
<path fill-rule="evenodd" d="M 80 -30 L 30 -30 30 -70 80 -70 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>MultiPolygon - Polygon/Hole-overlap hole overlaps Polygon </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Polygon/Hole-overlap hole overlaps Polygon </desc><g class="geomA"> | |
<path fill-rule="evenodd" d="M 10 -90 L 40 -90 40 -10 10 -10 Z M 20 -80 L 80 -80 80 -20 20 -20 Z" /> | |
<path fill-rule="evenodd" d="M 90 -90 L 90 -10 60 -10 60 -90 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Polygon/Hole-overlap hole overlaps Polygon </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 60 -90 L 90 -90 90 -10 60 -10 60 -20 80 -20 80 -80 60 -80 Z" /> | |
<path fill-rule="evenodd" d="M 40 -20 L 40 -80 60 -80 60 -20 Z" /> | |
<path fill-rule="evenodd" d="M 40 -10 L 10 -10 10 -90 40 -90 40 -80 20 -80 20 -20 40 -20 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Polygon/Hole-overlap hole overlaps Polygon </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 40 -80 L 20 -80 20 -20 40 -20 40 -10 10 -10 10 -90 40 -90 Z" /> | |
<path fill-rule="evenodd" d="M 90 -10 L 60 -10 60 -90 90 -90 Z" /> | |
</g></svg></td></tr></table><hr/> | |
<h3>MultiPolygon - Polygon overlaps Polygon/Hole </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Polygon overlaps Polygon/Hole </desc><g class="geomA"> | |
<path fill-rule="evenodd" d="M 10 -90 L 60 -90 60 -10 10 -10 Z" /> | |
<path fill-rule="evenodd" d="M 90 -80 L 90 -20 20 -20 20 -80 Z M 80 -70 L 80 -30 30 -30 30 -70 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Polygon overlaps Polygon/Hole </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 60 -20 L 60 -30 80 -30 80 -70 60 -70 60 -80 90 -80 90 -20 Z" /> | |
<path fill-rule="evenodd" d="M 10 -10 L 10 -90 60 -90 60 -80 20 -80 20 -20 60 -20 60 -10 Z" /> | |
<path fill-rule="evenodd" d="M 60 -30 L 30 -30 30 -70 60 -70 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Polygon overlaps Polygon/Hole </desc><path class="geomB" fill-rule="evenodd" d="M 60 -90 L 60 -80 90 -80 90 -20 60 -20 60 -10 10 -10 10 -90 Z M 60 -30 L 80 -30 80 -70 60 -70 Z" /></svg></td></tr></table><hr/> | |
<h3>MultiPolygon - Polygon/Hole-overlap overlaps Polygon </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Polygon/Hole-overlap overlaps Polygon </desc><g class="geomA"> | |
<path fill-rule="evenodd" d="M 10 -90 L 60 -90 60 -10 10 -10 Z M 30 -70 L 80 -70 80 -30 30 -30 Z" /> | |
<path fill-rule="evenodd" d="M 90 -80 L 90 -20 40 -20 40 -80 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Polygon/Hole-overlap overlaps Polygon </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 60 -30 L 80 -30 80 -70 60 -70 60 -80 90 -80 90 -20 60 -20 Z" /> | |
<path fill-rule="evenodd" d="M 10 -10 L 10 -90 60 -90 60 -80 40 -80 40 -70 30 -70 30 -30 40 -30 40 -20 60 -20 60 -10 Z" /> | |
<path fill-rule="evenodd" d="M 60 -30 L 40 -30 40 -70 60 -70 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Polygon/Hole-overlap overlaps Polygon </desc><path class="geomB" fill-rule="evenodd" d="M 60 -80 L 90 -80 90 -20 60 -20 60 -10 10 -10 10 -90 60 -90 Z M 30 -70 L 30 -30 40 -30 40 -70 Z" /></svg></td></tr></table><hr/> | |
<h3>MultiPolygon - Polygon partially fills Polygon/Hole </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Polygon partially fills Polygon/Hole </desc><g class="geomA"> | |
<path fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 30 -70 L 70 -70 70 -30 30 -30 Z" /> | |
<path fill-rule="evenodd" d="M 30 -60 L 70 -60 70 -40 30 -40 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Polygon partially fills Polygon/Hole </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 10 -90 L 90 -90 90 -10 10 -10 Z M 70 -40 L 70 -60 70 -70 30 -70 30 -60 30 -40 30 -30 70 -30 Z" /> | |
<path fill-rule="evenodd" d="M 30 -60 L 70 -60" /> | |
<path fill-rule="evenodd" d="M 70 -40 L 30 -40" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="10 -90 80 80" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Polygon partially fills Polygon/Hole </desc><path class="geomB" fill-rule="evenodd" d="M 90 -10 L 10 -10 10 -90 90 -90 Z M 70 -30 L 70 -40 30 -40 30 -30 Z M 70 -70 L 30 -70 30 -60 70 -60 Z" /></svg></td></tr></table><hr/> | |
<h3>MultiPolygon - Grid of adjacent Polygons </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="0 -100 100 100" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Grid of adjacent Polygons </desc><g class="geomA"> | |
<path fill-rule="evenodd" d="M 0 0 L 0 -20 20 -20 20 0 Z" /> | |
<path fill-rule="evenodd" d="M 0 -20 L 0 -40 20 -40 20 -20 Z" /> | |
<path fill-rule="evenodd" d="M 0 -40 L 0 -60 20 -60 20 -40 Z" /> | |
<path fill-rule="evenodd" d="M 0 -60 L 0 -80 20 -80 20 -60 Z" /> | |
<path fill-rule="evenodd" d="M 0 -80 L 0 -100 20 -100 20 -80 Z" /> | |
<path fill-rule="evenodd" d="M 20 0 L 20 -20 40 -20 40 0 Z" /> | |
<path fill-rule="evenodd" d="M 20 -20 L 20 -40 40 -40 40 -20 Z" /> | |
<path fill-rule="evenodd" d="M 20 -40 L 20 -60 40 -60 40 -40 Z" /> | |
<path fill-rule="evenodd" d="M 20 -60 L 20 -80 40 -80 40 -60 Z" /> | |
<path fill-rule="evenodd" d="M 20 -80 L 20 -100 40 -100 40 -80 Z" /> | |
<path fill-rule="evenodd" d="M 40 0 L 40 -20 60 -20 60 0 Z" /> | |
<path fill-rule="evenodd" d="M 40 -20 L 40 -40 60 -40 60 -20 Z" /> | |
<path fill-rule="evenodd" d="M 40 -40 L 40 -60 60 -60 60 -40 Z" /> | |
<path fill-rule="evenodd" d="M 40 -60 L 40 -80 60 -80 60 -60 Z" /> | |
<path fill-rule="evenodd" d="M 40 -80 L 40 -100 60 -100 60 -80 Z" /> | |
<path fill-rule="evenodd" d="M 60 0 L 60 -20 80 -20 80 0 Z" /> | |
<path fill-rule="evenodd" d="M 60 -20 L 60 -40 80 -40 80 -20 Z" /> | |
<path fill-rule="evenodd" d="M 60 -40 L 60 -60 80 -60 80 -40 Z" /> | |
<path fill-rule="evenodd" d="M 60 -60 L 60 -80 80 -80 80 -60 Z" /> | |
<path fill-rule="evenodd" d="M 60 -80 L 60 -100 80 -100 80 -80 Z" /> | |
<path fill-rule="evenodd" d="M 80 0 L 80 -20 100 -20 100 0 Z" /> | |
<path fill-rule="evenodd" d="M 80 -20 L 80 -40 100 -40 100 -20 Z" /> | |
<path fill-rule="evenodd" d="M 80 -40 L 80 -60 100 -60 100 -40 Z" /> | |
<path fill-rule="evenodd" d="M 80 -60 L 80 -80 100 -80 100 -60 Z" /> | |
<path fill-rule="evenodd" d="M 80 -80 L 80 -100 100 -100 100 -80 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="0 -100 100 100" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Grid of adjacent Polygons </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 0 -40 L 0 -60 0 -80 0 -100 20 -100 40 -100 60 -100 80 -100 100 -100 100 -80 100 -60 100 -40 100 -20 100 0 80 0 60 0 40 0 20 0 0 0 0 -20 Z M 80 -60 L 80 -80 60 -80 40 -80 20 -80 20 -60 20 -40 20 -20 40 -20 60 -20 80 -20 80 -40 Z" /> | |
<path fill-rule="evenodd" d="M 40 -60 L 60 -60 60 -40 40 -40 Z" /> | |
<path fill-rule="evenodd" d="M 0 -20 L 20 -20" /> | |
<path fill-rule="evenodd" d="M 20 -20 L 20 0" /> | |
<path fill-rule="evenodd" d="M 0 -40 L 20 -40" /> | |
<path fill-rule="evenodd" d="M 0 -60 L 20 -60" /> | |
<path fill-rule="evenodd" d="M 0 -80 L 20 -80" /> | |
<path fill-rule="evenodd" d="M 20 -100 L 20 -80" /> | |
<path fill-rule="evenodd" d="M 40 -20 L 40 0" /> | |
<path fill-rule="evenodd" d="M 20 -40 L 40 -40" /> | |
<path fill-rule="evenodd" d="M 40 -40 L 40 -20" /> | |
<path fill-rule="evenodd" d="M 20 -60 L 40 -60" /> | |
<path fill-rule="evenodd" d="M 40 -80 L 40 -60" /> | |
<path fill-rule="evenodd" d="M 40 -100 L 40 -80" /> | |
<path fill-rule="evenodd" d="M 60 -20 L 60 0" /> | |
<path fill-rule="evenodd" d="M 60 -40 L 60 -20" /> | |
<path fill-rule="evenodd" d="M 60 -80 L 60 -60" /> | |
<path fill-rule="evenodd" d="M 60 -100 L 60 -80" /> | |
<path fill-rule="evenodd" d="M 80 -20 L 80 0" /> | |
<path fill-rule="evenodd" d="M 60 -40 L 80 -40" /> | |
<path fill-rule="evenodd" d="M 60 -60 L 80 -60" /> | |
<path fill-rule="evenodd" d="M 80 -100 L 80 -80" /> | |
<path fill-rule="evenodd" d="M 80 -20 L 100 -20" /> | |
<path fill-rule="evenodd" d="M 80 -40 L 100 -40" /> | |
<path fill-rule="evenodd" d="M 80 -60 L 100 -60" /> | |
<path fill-rule="evenodd" d="M 80 -80 L 100 -80" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="0 -100 100 100" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Grid of adjacent Polygons </desc><path class="geomB" fill-rule="evenodd" d="M 20 0 L 0 0 0 -20 0 -40 0 -60 0 -80 0 -100 20 -100 40 -100 60 -100 80 -100 100 -100 100 -80 100 -60 100 -40 100 -20 100 0 80 0 60 0 40 0 Z" /></svg></td></tr></table><hr/> | |
<h3>MultiPolygon - Ring of adjacent Polygons </h3> | |
<table cellpadding="20"> | |
<tr><th>Invalid</th><th>MakeValid(original)</th><th>MakeValid(structure)</th></tr> | |
<tr><td><svg width="200" height="200" viewBox="0 -100 100 100" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Ring of adjacent Polygons </desc><g class="geomA"> | |
<path fill-rule="evenodd" d="M 0 0 L 0 -20 20 -20 20 0 Z" /> | |
<path fill-rule="evenodd" d="M 0 -20 L 0 -40 20 -40 20 -20 Z" /> | |
<path fill-rule="evenodd" d="M 0 -40 L 0 -60 20 -60 20 -40 Z" /> | |
<path fill-rule="evenodd" d="M 0 -60 L 0 -80 20 -80 20 -60 Z" /> | |
<path fill-rule="evenodd" d="M 0 -80 L 0 -100 20 -100 20 -80 Z" /> | |
<path fill-rule="evenodd" d="M 20 0 L 20 -20 40 -20 40 0 Z" /> | |
<path fill-rule="evenodd" d="M 20 -80 L 20 -100 40 -100 40 -80 Z" /> | |
<path fill-rule="evenodd" d="M 40 0 L 40 -20 60 -20 60 0 Z" /> | |
<path fill-rule="evenodd" d="M 40 -80 L 40 -100 60 -100 60 -80 Z" /> | |
<path fill-rule="evenodd" d="M 60 0 L 60 -20 80 -20 80 0 Z" /> | |
<path fill-rule="evenodd" d="M 60 -80 L 60 -100 80 -100 80 -80 Z" /> | |
<path fill-rule="evenodd" d="M 80 0 L 80 -20 100 -20 100 0 Z" /> | |
<path fill-rule="evenodd" d="M 80 -20 L 80 -40 100 -40 100 -20 Z" /> | |
<path fill-rule="evenodd" d="M 80 -40 L 80 -60 100 -60 100 -40 Z" /> | |
<path fill-rule="evenodd" d="M 80 -60 L 80 -80 100 -80 100 -60 Z" /> | |
<path fill-rule="evenodd" d="M 80 -80 L 80 -100 100 -100 100 -80 Z" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="0 -100 100 100" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Ring of adjacent Polygons </desc><g class="geomB"> | |
<path fill-rule="evenodd" d="M 0 0 L 0 -20 0 -40 0 -60 0 -80 0 -100 20 -100 40 -100 60 -100 80 -100 100 -100 100 -80 100 -60 100 -40 100 -20 100 0 80 0 60 0 40 0 20 0 Z M 40 -20 L 60 -20 80 -20 80 -40 80 -60 80 -80 60 -80 40 -80 20 -80 20 -60 20 -40 20 -20 Z" /> | |
<path fill-rule="evenodd" d="M 0 -20 L 20 -20" /> | |
<path fill-rule="evenodd" d="M 20 -20 L 20 0" /> | |
<path fill-rule="evenodd" d="M 0 -40 L 20 -40" /> | |
<path fill-rule="evenodd" d="M 0 -60 L 20 -60" /> | |
<path fill-rule="evenodd" d="M 0 -80 L 20 -80" /> | |
<path fill-rule="evenodd" d="M 20 -100 L 20 -80" /> | |
<path fill-rule="evenodd" d="M 40 -20 L 40 0" /> | |
<path fill-rule="evenodd" d="M 40 -100 L 40 -80" /> | |
<path fill-rule="evenodd" d="M 60 -20 L 60 0" /> | |
<path fill-rule="evenodd" d="M 60 -100 L 60 -80" /> | |
<path fill-rule="evenodd" d="M 80 -20 L 80 0" /> | |
<path fill-rule="evenodd" d="M 80 -100 L 80 -80" /> | |
<path fill-rule="evenodd" d="M 80 -20 L 100 -20" /> | |
<path fill-rule="evenodd" d="M 80 -40 L 100 -40" /> | |
<path fill-rule="evenodd" d="M 80 -60 L 100 -60" /> | |
<path fill-rule="evenodd" d="M 80 -80 L 100 -80" /> | |
</g></svg></td><td><svg width="200" height="200" viewBox="0 -100 100 100" | |
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<desc>MultiPolygon - Ring of adjacent Polygons </desc><path class="geomB" fill-rule="evenodd" d="M 40 0 L 20 0 0 0 0 -20 0 -40 0 -60 0 -80 0 -100 20 -100 40 -100 60 -100 80 -100 100 -100 100 -80 100 -60 100 -40 100 -20 100 0 80 0 60 0 Z M 20 -80 L 20 -60 20 -40 20 -20 40 -20 60 -20 80 -20 80 -40 80 -60 80 -80 60 -80 40 -80 Z" /></svg></td></tr></table><hr/> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment