VietTUG.org - old forum - threads' archive

thread_id = 355, contains 355
id = 355, parent = 0, thread = 355, catid = 17, locked = 0, moved = 0,
userid = kyanh, ip = 222.252.245.151, time = 2005/11/12 (1131805989) ,
subject = Maple: Vẽ trường véc tơ dọc cung, hits = 460, karma = 0+0-,
Hàm VField dưới đây vẽ trường véc tơ V dọc cung F. Trong đó, F, V là các hàm của biến thực t. Trường véc tơ V sẽ được chuẩn hóa khi vẽ. Nếu V đã được chuẩn hóa, dùng goodV=1. Kết quả trả về phải dùng display để hiển thị. num là số véc tơ của trường sẽ được vẽ
> VField := proc(F, V, a, b, num, goodV)
>  local x, k, L, norm, plotA, plotB;
>  if (num <=0) then num:=20 end if;
>  x := (b-a)/num;
>  L:=[0,0,0];
>  if (goodV<=0) then
>   norm := simplify(sqrt(V[1]*V[1] + V[2]*V[2] + V[3]*V[3]),symbolic);
>  else
>   norm := 1;
>  end if;
>  L[1] := V[1]/norm + F[1];
>  L[2] := V[2]/norm + F[2];
>  L[3] := V[3]/norm + F[3];
>  plotB := plots[spacecurve](F,t=a..b,thickness=3,color=red);
>  plotA := seq(
>   plottools[arrow](
>    subs(t=a+k*x,F),
>    subs(t=a+k*x,L),
>    0.02,.05,.05,
>    color=COLOR(RGB,1,0,0)),
>   k=0..num);
>  return {plotA,plotB};
> end:


Ví dụ ( vẽ 20 véc tơ trên đoạn -Pi..Pi)
tmp := VField([0,0,t], cos(t)/sin(t), -Pi, Pi, 20, 0);
plots[display](tmp);

Shot:
http://viettug.org/migration/#/maths/c-helicoid-1.png