Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var segments = [5, 4];
- var radius = 1;
- // A generic function to copy the tuple
- function copy(array) {
- var newArray = [];
- for (var i = 0; i < array.length; i++) {
- newArray[i] = array[i];
- }
- return newArray;
- }
- // A function that computes the successor of a given tuple
- function getNextTuple(lastGeneratedTuple) {
- var newTuple = copy(lastGeneratedTuple)
- for (i = segments.length - 1; i >= 0; i--) {
- // Increment the last coordinate. If it overflows,
- // continue incrementing the next coordinate, else we are done
- newTuple[i]++;
- if (newTuple[i] > segments[i] - 1) {
- newTuple[i] = 0;
- }
- else {
- break;
- }
- }
- return newTuple;
- }
- // A function that enumerates all possible tuples
- function enumerateAllTuples() {
- // The number of tuples is the product of all segments
- var numberOfTuples = 1;
- for (i = 0; i < segments.length; i++) {
- numberOfTuples *= segments[i];
- }
- var allTuples = [],
- zeroTuple = [];
- for (var i = 0; i < segments.length; i++) {
- zeroTuple[i] = 0;
- }
- allTuples[0] = zeroTuple;
- for (i = 1; i < numberOfTuples; i++) {
- allTuples[i] = getNextTuple(allTuples[i - 1]);
- }
- return allTuples;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement