Algumas super quadricas

Superquadricas em Octave

Super torus

function supertoroid(epsilon,a)
  n=50;
  d=.1;
  etamax=pi;
  etamin=-pi;
  wmax=pi;
  wmin=-pi;
  deta=(etamax-etamin)/n;
  dw=(wmax-wmin)/n;
  k=0;
  l=0;
  for i=1:n+1
    eta(i)=etamin+(i-1)*deta;
    for j=1:n+1
      w(j)=wmin+(j-1)*dw;
      x(i,j)=a(1)*(a(4)+sign(cos(eta(i)))*abs(cos(eta(i)))^epsilon(1))*sign(cos(w(j)))*abs(cos(w(j)))^epsilon(2);
      y(i,j)=a(2)*(a(4)+sign(cos(eta(i)))*abs(cos(eta(i)))^epsilon(1))*sign(sin(w(j)))*abs(sin(w(j)))^epsilon(2);
      z(i,j)=a(3)*sign(sin(eta(i)))*abs(sin(eta(i)))^epsilon(1);
    endfor;
  endfor;
  surfl(x,y,z)
  colormap(bone);
  axis off square;
endfunction;

Super elipsóides

function retval=superellipse(epsilon,a)
  n=50;
  etamax=pi/2;
  etamin=-pi/2;
  wmax=pi;
  wmin=-pi;
  deta=(etamax-etamin)/n;
  dw=(wmax-wmin)/n;
  k=0;
  l=0;
  for i=1:n+1
    eta(i)=etamin+(i-1)*deta;
    for j=1:n+1
      w(j)=wmin+(j-1)*dw;
      x(i,j)=a(1)*sign(cos(eta(i)))*abs(cos(eta(i)))^epsilon(1)*sign(cos(w(j)))*abs(cos(w(j)))^epsilon(2);
      y(i,j)=a(2)*sign(cos(eta(i)))*abs(cos(eta(i)))^epsilon(1)*sign(sin(w(j)))*abs(sin(w(j)))^epsilon(2);
      z(i,j)=a(3)*sign(sin(eta(i)))*abs(sin(eta(i)))^epsilon(1);
    endfor;
  endfor;
  surfl(x,y,z)
  colormap(bone);
  axis off square;
endfunction;

Os comandos para fazer as figuras são:

k=1;
n=4;
epsilon=linspace(.01,3,n)

for i=1:n
  for j=1:n
    axis off square
    subplot (n,n, k)
    supertoroid([epsilon(i) epsilon(j)], [1 1 1 3])
#    superellipse([epsilon(i) epsilon(j)], [1 1 1])
    k=k+1;
  endfor;
  axis off square
endfor;
Palavras chave/keywords: Octave, superquadrics

Criado/Created: NaN

Última actualização/Last updated: 10-10-2022 [14:26]


Voltar à página inicial.


GNU/Emacs Creative Commons License

(c) Tiago Charters de Azevedo