I have a cubic Bezier curve I've generated:
pts = RandomReal[1,{4,2}];
f = BezierFunction[pts];
For a particular value of t, f will return a 2D vector:
In[21]:= f[0.5]
Out[21]= {0.584105,0.651064}
However, if I pass f by itself to ArcLength, it fails to evaluate:
ArcLength[f[t], {t,0,1}] //N
NIntegrate: Integrand ... is not numerical at {t}={0.00795732}
The same general procedure works fine with other vector-valued functions I've defined myself:
In[30]:= g[t_]:={t,t}
In[31]:= ArcLength[g[t], {t,0,1}]
Out[31]= ???SqrtBox["2"]?
What's the correct way to do this?