JSFiddle - React, Tailwind, and code Playground
by jrab227
JavaScript
//SFC(number_of_segments: Int): (Float,Int) => (Float,Float)
//Takes information about the type of SFC you're making then
// returns a function to calculate [0,1] points to [0,1] x-y points
function SFC(number_of_segments,debug){
//iter_SFC(value:Float, order:Int): (Float,Float)
var iter_SFC = function(value, order, previous_segments){
//0 start!
current_segment = Math.floor(value*number_of_segments)
if(debug){
console.log("New current segment:" + current_segment)
}
if (order == 1) {
return current_segment + previous_segments
} else {
var new_value = ((number_of_segments)*value ) - current_segment
var new_previous_segments = (current_segment + previous_segments ) * number_of_segments
if(debug){
console.log("New Value:" + new_value)
console.log("New Previous Segments:" + new_previous_segments)
}
return iter_SFC(new_value, order-1, new_previous_segments )
}
}
return iter_SFC
}
var Gosper = SFC(6);
var test = Gosper(.345,4, 0)
console.log(test)