MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: Surface Normal

  • To: mathgroup at smc.vnet.net
  • Subject: [mg55223] Re: [mg55198] Re: Surface Normal
  • From: DrBob <drbob at bigfoot.com>
  • Date: Thu, 17 Mar 2005 03:28:45 -0500 (EST)
  • References: <d15s2g$9k2$1@smc.vnet.net> <200503161036.FAA23857@smc.vnet.net>
  • Reply-to: drbob at bigfoot.com
  • Sender: owner-wri-mathgroup at wolfram.com

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
>
>
>
>



-- 
DrBob at bigfoot.com


  • Prev by Date: Front End Help Browser Bug
  • Next by Date: Re: Interaction of Sum/Plus and KroneckerDelta
  • Previous by thread: Re: Surface Normal
  • Next by thread: Re: Re: Surface Normal