Näita sildipilve

Kuidas leida hulknurga keskpunkt?

How to find the center of a polygon (Javascipt)?

Kirjutas ,

Kaart-kujutise (map) kasutamisel on tihti vaja teada saada aktiivse ala keskpunkti. Ringi puhul on see lihtne. Kuid mida teha hulknurga korral? Alljärgnev funktsioon tagastab massiivina kaks koordinaati: x ja y.

function getPolygonCentroid( coords )
{
	var coords = coords.match(/d+/g),
	len = coords.length,
	minX = maxX = parseInt( coords[0] ),
	minY = maxY = parseInt( coords[1] ),
	coord = 0;

	while( len-- )
	{
		coord = parseInt( coords[len] );

		if( len % 2 )
		{
			if( coord < minY ) 			
			{
 				minY = coord; 			
			} 			
			else if( coord > maxY )
			{
				maxY = coord;
			}

		} else {

			if( coord < minX ) 
			{ 
				minX = coord; 
			} 
			else if( coord > maxX ) 
			{ 				
				maxX = coord; 
			}  		
		}  	
	}  	
	return [ Math.ceil( ( minX + maxX ) / 2 ), 
			  Math.ceil( ( minY + maxY ) / 2 ) ]; 
}