Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Two tips:

• You can bend around obstacles in a number of ways, including parabolas, 1/x, and exponential equations, but one way I saw someone else using involved combining terms of this format: “a•((x-k)+abs(x-k))” (I’m using • because HN is swallowing asterisks). k is the x-value at which your equation curves, and a is the slope afterwards. Each term like this adds another point at which your equation can change direction. It works because abs() is math’s equivalent to the “if-else” – with enough convolutions, you can make equations conditional on almost anything. However, I think with this technique, you have to change parts of previous terms to account for the new term – I haven’t figured out how yet.

• Add k•sin(99•x) to your equation to give yourself a “beam” k high.

I'm tempted to write a program that can create an equation of piecewise line segments to fire. The inputs would be a list of x-values of the segment boundaries and angles for each segment. I probably won’t get around to it, but someone else, feel free to.



> I'm tempted to write a program that can create an equation of piecewise line segments to fire.

I was also tempted to do that. I wanted to give it a graphical user interface, too, as that's what would be best for a human for this task: the user could click points on the screen, and the program would construct a piecewise function to connect them. (This would probably make the task trivial. But I'd want it done anyway--I like seeing this sort of thing demonstrated.)


I used 1/(1+100^(-20(x-k))) as my step function, because you only have to put k in once.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: