# Trying to define a simple "warp" function

I'm trying to define a 2D "warp" function $$y=f(x,w)$$. A picture is worth a thousand bytes:

I am looking for a simple function $$f(x, w)$$ that satisfies the following:

• defined over $$x = 0.0 \dots 1.0$$
• continuous
• $$f(0,w) = 0$$,
• $$f(1,w) = 1$$,
• $$f'(x,w) \ge 0$$ (slope is never negative),
• defines a straight line at $$w=0$$, i.e. $$f(x,0) = x$$ [but see note],
• symmetrical about $$y=-x+1$$, i.e. $$f(x,w) = 1-f(1-x,w)$$,
• slope at $$x=0$$ is the inverse of the slope at $$x=1$$: $$f'(0,w) = 1/f'(1,w)$$.

Note: despite what's shown in the graphic, I don't really care about the range of w: it could be -inf to inf (with y=x when w=0) or it could be 0 to 1 (with y=x when w=0.5). The important part is that the curve becomes sharper as w approaches its extreme values.

I suspect this is simple, but I haven't been able to crack it. Some kind of conic section, perhaps?

• I didn't rigorously check all of the conditions for this, but would something like $f(x, w) = x^{e^w}$ work? Jan 27, 2015 at 17:27
• @cbishop: mighty close!! but not symmetrical about y=-x+1. (OS X's Grapher app is my friend! :) Jan 27, 2015 at 18:13

You want a quadrant of a superellipse, appropriately transformed. That is to say, consider the family of curves $$x^m + y^m = 1,$$ for $m \in (0, \infty).$ Then your curve is merely the slightly modified case $$(1-x)^m + y^m = 1,$$ for $x \in [0,1]$, or equivalently, $$y = (1-(1-x)^m)^{1/m}.$$ Now all that remains is to reparametrize $m$ to $w$, for which $w = 0$ corresponds to $m = 1$, and $w(m) + w(1/m) = 0$. Your $w$ is underspecified, however; if I infer from your diagram that you would like $w \in (-1,1)$, then the following conditions give the function $$w(m) = \frac{m-1}{m+1}.$$ Therefore, your desired family of curves has the equation $$y = (1-(1-x)^{(1+w)/(1-w)})^{(1-w)/(1+w)}, \quad x \in [0,1], w \in (-1,1).$$

It would seem that this function does not have the property of being symmetric for $w$ and $-w$, so when I have a chance I will give it some more thought. But the family of curves is valid; it just needs re-parametrization.

• Thanks for the lucid answer. As for the symmetry, I can cheat and use the curves produced by m=0...1, which cover half the cases. Then just flip around y=x for the other half. Let me know if you find a less hack-ish re-parametrization. Jan 27, 2015 at 18:33

Any Bezier Curve (parametric) with degree at least 2 and "symmetric & monotonic Bezier points on the edges of the unit square" will suffice. The degree will work as the needed "w" by swapping x, y.

One choice:

x = t^n;
y = 1-(1-t)^n; n >= 1, 0=< t =< 1.

• A bezier vurve isn't the best answer. Consider NURBS instead Jan 31 at 23:14