Re: Re: Surface Normal

• To: mathgroup at smc.vnet.net
• Subject: [mg55243] Re: [mg55198] Re: Surface Normal
• From: Peter Pein <petsie at arcor.de>
• Date: Thu, 17 Mar 2005 03:30:08 -0500 (EST)
• References: <d15s2g\$9k2\$1@smc.vnet.net> <200503161036.FAA23857@smc.vnet.net> <opsnqkkgzgiz9bcq@monster.ma.dl.cox.net>
• Sender: owner-wri-mathgroup at wolfram.com

``` DrBob wrote:

> This may be easier to type and remember (when f is vector valued):
>
> normVec[f_][u_, v_] := Cross @@ Transpose@D[f[u, v], {{u, v}}]
>
> Bobby
>
> On Wed, 16 Mar 2005 05:36:34 -0500 (EST), Peter Pein <petsie at arcor.de>
> wrote:
>
>> gouqizi.lvcha at gmail.com wrote:
>>
>>> Hi, All:
>>>
>>> If I have a surface in parametric form
>>>
>>> For example,
>>> x = (10 + 5cosv)cosu
>>> y = (10 + 5cosv)sinu
>>> z = 5sinv
>>>
>>> How can I quickly calculate its normal for any (u,v) by mathematica
>>>
>>> Rick
>>>
>> The same way you would do with pencil & paper:
>>
>> In[1]:= normVec[f_][u_,v_]:=
>>   Cross[Derivative[1,0][f][u,v],Derivative[0,1][f][u,v]]
>> In[2]:= f[u_,v_]:={5 Cos[u](Cos[v]+2),5 Sin[u](Cos[v]+2),5 Sin[v]};
>> In[3]:= nv = FullSimplify[normVec[f][u, v]]
>> Out[6]=
>>   {25*Cos[u]*Cos[v]*(2 + Cos[v]),
>>    25*Cos[v]*(2 + Cos[v])*Sin[u],
>>    25*(2 + Cos[v])*Sin[v]}
>>
>> If you need it normalized; divide by
>> In[4]:= absnv = Simplify[Sqrt[#1 . #1]&[nv], v \[Element] Reals]
>> Out[4]= 25*(2 + Cos[v])
>> or insert "(#/Sqrt[#.#])&@" (without quotes) just before "Cross" in the
>> above definition.
>>
>> Peter
>>
More readable and easier to remember - OK. But:

In[1]:=
yourNormVec[f_][u_, v_] := Cross @@ Transpose[D[f[u, v], {{u, v}}]]
myNormVec[f_][u_, v_] :=
Cross[Derivative[1, 0][f][u, v], Derivative[0, 1][f][u, v]]
In[3]:=
f[x_, y_] := {x*y, x, y};
In[4]:=
StringJoin[ToString[#1], ": ", ToString[Evaluate[#1[f][2, 3]]]] &
{yourNormVec, myNormVec}
From In[4]:=
<<error msg omitted>>
Out[4]=
"yourNormVec: Cross[D[{6, 2, 3}, {{2, 3}}]]"
"myNormVec: {1, -3, -2}"

_This_ was the reason for using Derivative[1,0][f] instead of D[f[u,v],u].

Peter

```

• Prev by Date: Re: Interaction of Sum/Plus and KroneckerDelta
• Next by Date: Re: Sum
• Previous by thread: Re: Re: Surface Normal
• Next by thread: Re: Re: Surface Normal