Difference between revisions of "GroupTPA"

From SCAR Divi Manual
Jump to: navigation, search
Line 13: Line 13:
  
 
==Description==
 
==Description==
This function splits a given [[TPointArray]] '''TPA''' into separate TPointArrays, one for every element in '''TPA''' which is also the first element of every subarray. Next it adds every point that is within the given distance '''Dist''' from that first point to the subarray. The function returns a [[T2DPointArray]] containing all the resulting TPointArrays.
+
This function splits a given [[TPointArray]] '''TPA''' into separate TPointArrays, by grouping points that are within the given distance '''Dist''' of the first point of each subarray. If a point isn't within the given distance of any first point of the subarrays, a new subarray is created containing that point as first one.
  
 
==Example==
 
==Example==
Line 36: Line 36:
 
  (0,0);(1,1);(-2,0)
 
  (0,0);(1,1);(-2,0)
 
  (5,5);(5,7)
 
  (5,5);(5,7)
(1,1);(0,0)
 
(5,7);(5,5)
 
(-2,0);(0,0)
 
  
 
==See Also==
 
==See Also==

Revision as of 18:58, 2 November 2011

Definition

function GroupTPA(const TPA: TPointArray; const Dist: Integer): T2DPointArray;

Availability

SCAR Divi 3.28 > Current

  • Contained a bug 3.26-3.27 that caused the initial element in every subarray of the result to be duplicated inside of that subarray.

Aliases

  • TPAGroup (SCAR Divi 3.26 > Current)

Description

This function splits a given TPointArray TPA into separate TPointArrays, by grouping points that are within the given distance Dist of the first point of each subarray. If a point isn't within the given distance of any first point of the subarrays, a new subarray is created containing that point as first one.

Example

var
  TPA: TPointArray;
  ATPA: T2DPointArray;
  i: Integer;

begin
  ClearDebug;
  TPA := [Point(2, 5), Point(6, 9), Point(0, 0), Point(5, 5), Point(1, 1), Point(5, 7), Point(-2, 0)];
  ATPA := GroupTPA(TPA, 2);
  for i := 0 to High(ATPA) do
    WriteLn(TPAToStr(ATPA[i]));
end.

Output:

(2,5)
(6,9)
(0,0);(1,1);(-2,0)
(5,5);(5,7)

See Also