EgtGeomKernel :
- migliorata gestione delle curve composite chiuse forzando i punti iniziale e finale a coincidere se necessario - migliorato calcolo area delle polyline nel caso di estremi non perfettamente coincidenti.
This commit is contained in:
@@ -645,6 +645,12 @@ PolyLine::GetAreaXY( double& dArea) const
|
||||
for ( bool bFound = GetFirstLine( ptIni, ptFin) ; bFound ; bFound = GetNextLine( ptIni, ptFin)) {
|
||||
dArea += ( ptIni.x - ptFin.x) * ( ptIni.y + ptFin.y) ; // projection on xy
|
||||
}
|
||||
// considero anche la linea tra l'ultimo e il primo punto perchè in alcuni casi potrebbero definire area
|
||||
// significativa anche se sono coincidenti per le nostre tolleranze
|
||||
ptIni = ptFin ;
|
||||
GetFirstPoint( ptFin) ;
|
||||
if ( ! AreSamePointExact( ptIni, ptFin))
|
||||
dArea += ( ptIni.x - ptFin.x) * ( ptIni.y + ptFin.y) ;
|
||||
dArea = 0.5 * dArea ;
|
||||
return true ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user