Hi Jerry, I am not sure what you are trying to archive, but if you want to find the bounding box for a 3D object defined by 3 points, you have to evaluate the min/max for each component separately. Also you have to compare each point against the current min/max you already calculated:
something like this: _Mins = new Array(9999,9999,9999); _Maxs = new Array{-9999,-9999,-9999); for(var point=0; point<Points.length; point ++){ for(var component=0 ; component<3; component ++){ if( _Mins[component] > Points[point][component]){ _Mins[component] = Points[point][component]; } if( _Maxs[component] < Points[point][component]){ _Maxs[component] = Points[point][component]; } } } Please note: This is untested code, I just typed it in the email. (missing all the "main-function"-wrapping) The result is a _Mins and _Maxs array having 3 components each, containing the min and max values for x , y and z of all points. Makes six numbers total. Is this what you need? best, Achim Breidenbach Boinx Software On 11.05.2011, at 11:07, Jerry Smith wrote: > Here's another revision, still the same problem. Not yet getting something > crucial: > > _Mins = [] > _Maxs = [] > > function (__structure min, __structure max) main (__structure Points) > { > var result = new Object() > if (Points != null) { > > for (var i=0; i < Points.length; ++i) { > _Mins = [Math.min(Points[0][0], Points[i][0]), > Math.min(Points[0][1], Points[i][1])]; > } > > for (var j=0; j < Points.length; ++j) { > _Maxs = [Math.max(Points[0][0], Points[j][0]), > Math.max(Points[0][1], Points[j][1])]; > } > } > result.min = _Mins; > result.max = _Maxs; > return result > > } > > > > > On 5/10/11 11:05 PM, "Achim Breidenbach" <ac...@boinx.com> wrote: > >> Hi Jerry, >> >> First question: The "m=0" line belongs outside the for-loop for sure, >> otherwise m will always be 0 or 1 for the following lines, alway >> overwriting previouse stored _Mins and _Maxs. >> >> Also "m++" means increase m after evaluating the code line. In the >> following line m is 1 and will be increase again. The result is that >> in the _Mins array only the even idexes get set, and in the _Maxs the >> odd indexes. I guess you want to change the first "m++" to just "m", >> but then "m" goes with "i" which means that "m" is obsolete and can be >> replaced by i. >> >> Best, >> >> Achim Breidenbach >> Boinx Software >> >> On 11.05.2011, at 02:11, Jerry Smith <je...@sonsmi.com> wrote: >> >>> I realize this is double posting from this kineme forum thread: >>> http://kineme.net/forum/Discussion/General/JavascriptMinMax >>> >>> Sorry. In the meantime I reduced the comp to the essential parts. I am >>> trying to set up an approach to getting a bounding box (and eventually a >>> cube) for polygons with arbitrary # of points. Comp uses Kineme Structure >>> Tools and GL Tools. I have 3 questions in order of importance: >>> >>> 1. Re: getting the min/max from an array. This js (as well as the attempt >>> using the iterator in the comp) only grabs the first and last points in the >>> structure of 4 points. What am I doing wrong here: >>> >>> [javascript] >>> _Mins = [] >>> _Maxs = [] >>> >>> function (__structure min, __structure max) main (__structure Points) >>> { >>> var result = new Object() >>> >>> if (Points != null) { >>> for (var i=0; i < Points.length; ++i) { >>> m = 0 >>> >>> _Mins[m++] = [Math.min(Points[0][0], Points[i][0]), >>> Math.min(Points[0][1], Points[i][1])]; >>> _Maxs[m++] = [Math.max(Points[0][0], Points[i][0]), >>> Math.max(Points[0][1], Points[i][1])]; >>> >>> } >>> } >>> result.min = _Mins; >>> result.max = _Maxs; >>> return result >>> >>> } >>> [/javascript] >>> >>> 2. How can I send points in order to keep mesh corners from folding over? >>> >>> 3. In the number stats display, how can I truncate to decimal places and >>> avoid the jumps caused by floating point error? >>> >>> <StructMinMax2.qtz> >>> _______________________________________________ >>> Do not post admin requests to the list. They will be ignored. >>> Quartzcomposer-dev mailing list (Quartzcomposer-dev@lists.apple.com) >>> Help/Unsubscribe/Update your Subscription: >>> http://lists.apple.com/mailman/options/quartzcomposer-dev/achim%40boinx.com >>> >>> This email sent to ac...@boinx.com >> > > _______________________________________________ Do not post admin requests to the list. They will be ignored. Quartzcomposer-dev mailing list (Quartzcomposer-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/quartzcomposer-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com