improved triangulation so that empty triangles can get removed, which can happen with self-intersecting polygons

This commit is contained in:
Thomas Friedel 2018-02-12 10:32:38 +01:00
parent 31c2eb204e
commit d6b0dc454b

View file

@ -1,6 +1,7 @@
package canvas package canvas
import ( import (
"math"
"sort" "sort"
"github.com/tfriedel6/lm" "github.com/tfriedel6/lm"
@ -77,6 +78,9 @@ func triangulatePath(path []pathPoint, target []float32) []float32 {
a := polygon[i] a := polygon[i]
b := polygon[(i+1)%len(polygon)] b := polygon[(i+1)%len(polygon)]
c := polygon[(i+2)%len(polygon)] c := polygon[(i+2)%len(polygon)]
if isSamePoint(a, c, math.SmallestNonzeroFloat32) {
break
}
for i2, p := range polygon { for i2, p := range polygon {
if i2 >= i && i2 <= i+2 { if i2 >= i && i2 <= i+2 {
continue continue