Merge branch 'master' of git@github.com:ryanmcgrath/franz

This commit is contained in:
Veno Server 2009-08-14 00:31:04 -05:00
commit b5d19780b2

View file

@ -116,8 +116,8 @@ var franz = {
delta = max - min, delta = max - min,
hue; hue;
if(max == 0) if (max == min)
return -1; return 0;
else { else {
if(red == max) if(red == max)
hue = (green - blue) / delta; //between yellow & magenta hue = (green - blue) / delta; //between yellow & magenta
@ -195,78 +195,51 @@ var franz = {
}, },
displayHue: function() { displayHue: function() {
franz.bubbleSort(franz.clone(franz.hsvl.hue), 0, franz.rgb.alpha.length); franz.indexSort(franz.clone(franz.hsvl.hue), 0, franz.rgb.alpha.length);
franz.displayColors(franz.origIndex); franz.displayColors(franz.origIndex);
return false; return false;
}, },
displaySat: function() { displaySat: function() {
franz.bubbleSort(franz.clone(franz.hsvl.satV), 0, franz.rgb.alpha.length); franz.indexSort(franz.clone(franz.hsvl.satV), 0, franz.rgb.alpha.length);
franz.displayColors(franz.origIndex); franz.displayColors(franz.origIndex);
return false; return false;
}, },
displayVal: function() { displayVal: function() {
franz.bubbleSort(franz.clone(franz.hsvl.value), 0, franz.rgb.alpha.length); franz.indexSort(franz.clone(franz.hsvl.value), 0, franz.rgb.alpha.length);
franz.displayColors(franz.origIndex); franz.displayColors(franz.origIndex);
return false; return false;
}, },
displaySatL: function() { displaySatL: function() {
franz.bubbleSort(franz.clone(franz.hsvl.satL), 0, franz.rgb.alpha.length); franz.indexSort(franz.clone(franz.hsvl.satL), 0, franz.rgb.alpha.length);
franz.displayColors(franz.origIndex); franz.displayColors(franz.origIndex);
return false; return false;
}, },
displayLight: function() { displayLight: function() {
franz.bubbleSort(franz.clone(franz.hsvl.light), 0, franz.rgb.alpha.length); franz.indexSort(franz.clone(franz.hsvl.light), 0, franz.rgb.alpha.length);
franz.displayColors(franz.origIndex); franz.displayColors(franz.origIndex);
return false; return false;
}, },
/* bubble sort */ /* bubble sort floats around and pops in your face */
bubbleSort: function(inputArray, start, end) { indexSort: function(inputArray, start, end) {
franz.resetIndex(); franz.resetIndex();
for (var i = start; i < end; i++) { for (var i = start; i < end; i++) {
for (var j = start; j < end; j++) { for (var j = end-1; j >= start; j--) {
var diff = inputArray[j] - inputArray[i] var diff = inputArray[j] - inputArray[i]
console.log("j=" + inputArray[j] + " i=" + inputArray[i] + " -> " + diff);
if (diff > 0) { if (diff > 0) {
console.log("swapped");
inputArray.swap(i,j+1); inputArray.swap(i,j+1);
franz.origIndex.swap(i,j+1); franz.origIndex.swap(i,j+1);
} }
if (j == end-20) break;
} }
if (i == 20) break;
} }
},
/* quicksort algorithm that also swaps an index array */
sort_Partition: function(array, begin, end, pivot) {
var piv=array[pivot];
array.swap(pivot, end-1);
franz.origIndex.swap(pivot, end-1);
var store=begin;
var ix;
for(ix=begin; ix<end-1; ++ix) {
if(array[ix]<=piv) {
array.swap(store, ix);
franz.origIndex.swap(store, ix);
++store;
}
}
array.swap(end-1, store);
franz.origIndex.swap(end-1, store);
return store;
},
qsort: function(array, begin, end) {
if(end-1>begin) {
var pivot=begin+Math.floor(Math.random()*(end-begin));
pivot=franz.sort_Partition(array, begin, end, pivot);
franz.qsort(array, begin, pivot);
franz.qsort(array, pivot+1, end);
}
return false;
} }
} }