Also, wenn du Polygone menst, hast du sicherlich auch Punktarrays.
Erste Frage: Sind die Formen immer Convex oder können sie auch Concave sein?
->
http://www.mathsisfun.com/definitions/convex.html
Convex(mein theoretischer ansatz)
Hier musst du erstmal herausfinden, welche kannten(verbindung zweiterpunkte) sich überlappen.
Am schnittpunkt fügst du dann bei beiden einen zusätzlichen Punkt ein der die Kante damit nochmal unterteilt.
Danach überprüffst du, welche Punkte von Form A in FormB liegen, diese merkst du dir. Danach guckst du, welche Punkte von Form B in Form A liegen, die merkst du dir auch.
Dan löscht du alle gemerkten punkte, und vereinst die schnittpunkte, die direkt übereinanderlagen.