Hacker News new | past | comments | ask | show | jobs | submit login
Psy Curve (wolframalpha.com)
100 points by jellyksong on Jan 18, 2013 | hide | past | favorite | 15 comments




PSY curve vs Ellen DeGeneres curve vs Batman curve http://www.wolframalpha.com/input/?i=PSY+curve+vs+Ellen+DeGe... Note: it's still 'parametric' but no longer 'person' (in Wolfram Common properties frame).


Wonder how this was generated - surely not by hand? Is there a way of taking a set of splines or similar and creating equations from them, like this?


Yes, in the case of splines you have this by definition.[1] If you want a algorithm for generating formulas from pixel graphics ( with nice properties), then you can

1. Separate the graphics into distinct line segments. 2. Take from each line segments a few points and do a (cubic) interpolation of the line segment. 3. Cut the line segment into two half, and redo 2. if you are not satisfied by the lines.

If you look at the formula, then you will see that something quite similar happens. The formula is always a sum of several sines, times two Heavyside step functions. [2] The trick here is, that the product of two Heavyside functions will give you a function that is one for some interval and zero otherwise. Effectively switching off the part of the sum outside of the interval. And the sum of sines is essentially a Fourier transform of the line drawn.

[1]https://en.wikipedia.org/wiki/Spline_%28mathematics%29

[2]https://en.wikipedia.org/wiki/Heaviside_step_function


There's no magic. Terms of the form X(t) * th(t-a) * th(b-t) mean "draw X(t), t going from a to b". X(t) is a primitive trigonometric arc, th(t) is a step function. Gluing together arcs simply meaning defining terms over successive [a,b] intervals and adding them.


And is there a way to create other stuff like this? It would be neat to be able to draw some simple thing with your mouse on a canvas and then have it generate an equation that makes it.



Makes me wonder whether someone could make a simpler one.


This seems like an image that could easily be created with the Pen Tool in Photoshop. Which, if I understand correctly, is a sequence of Bezier curves[1].

[1] http://en.wikipedia.org/wiki/B%C3%A9zier_curve


I don't think finding a formula in general would be hard; I'd imagine there's a pretty easy method akin to fourier or Taylor series for arbitrary parametric shapes. But doing so in a compact formula doesn't feel like a trivial problem.


Maybe have a look at this: http://demonstrations.wolfram.com/preview.html?draft/46249/0...

Which may be how they did it.



Here are all the "person curve" possibilities

http://www.wolframalpha.com/input/?i=person+curve&lk=2


I see... so this is what Mr. Wolfram does in his spare time.


pls no




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

Search: