Re: How to select only points which are inside a domain
- To: mathgroup at smc.vnet.net
- Subject: [mg124988] Re: How to select only points which are inside a domain
- From: Bob Hanlon <hanlonr357 at gmail.com>
- Date: Thu, 16 Feb 2012 03:27:46 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201202091034.FAA18221@smc.vnet.net>
It is more efficient to keep a list of the coordinates rather than a list of Point graphic primitives. n = 10000; pts1 = RandomReal[{-5, 5}, {n, 3}]; (* list of coordinates *) pts2 = Point /@ pts1; (* list of corresponding Point graphic primitives *) pts3 = Point[pts1]; (* Point graphic primitive of list of coordinates *) Graphics3D[Point[pts1]] (* output is very rapid *) Graphics3D[pts2] (* significant delay prior to output *) Graphics3D[pts3] (* output is very rapid *) Define filter to work with multiple forms of input; output is same form as input filterPoints3D[pts : {{_, _, _} ..}, {xmin_, xmax_, ymin_, ymax_, zmin_, zmax_}] := Select[pts, xmin <= #[[1]] <= xmax && ymin <= #[[2]] <= ymax && zmin <= #[[3]] <= zmax &] (* filtered list of 3D coordinates *) filterPoints3D[pts : {Point[{_, _, _}] ..}, {xmin_, xmax_, ymin_, ymax_, zmin_, zmax_}] := Select[pts, xmin <= #[[1, 1]] <= xmax && ymin <= #[[1, 2]] <= ymax && zmin <= #[[1, 3]] <= zmax &] (* filtered list of Point graphic primitives *) filterPoints3D[Point[pts : {{_, _, _} ..}], {xmin_, xmax_, ymin_, ymax_, zmin_, zmax_}] := Point[Select[pts, xmin <= #[[1]] <= xmax && ymin <= #[[2]] <= ymax && zmin <= #[[3]] <= zmax &]] (* filtered Point graphic primitive of list of coordinates *) fp1 = filterPoints3D[pts1, {-1, 1, -1, 1, -1, 1}]; fp2 = filterPoints3D[pts2, {-1, 1, -1, 1, -1, 1}]; fp3 = filterPoints3D[pts3, {-1, 1, -1, 1, -1, 1}]; (Point /@ fp1) === fp2 True Point[fp1] === fp3 True Bob Hanlon On Wed, Feb 15, 2012 at 4:41 AM, Ted Sariyski <tsariysk at craft-tech.com> wrote: > Hi, > I have a list of points: pntL={Point[x1,y1,z1],...}. How to select only > points which are inside a domain {xmin,xmax,ymin,ymax,zmin,zmax}? > Thanks in advance, > --Ted >
- References:
- ListInterpolate and missing values
- From: Mark Coleman <markspcoleman@gmail.com>
- ListInterpolate and missing values