Суперквадрики

Суперквадрики — семейство геометрических поверхностей, определяемых уравнением эллипсоида и других поверхностей второго порядка, где показатели степени 2 заменены произвольным числом. Их можно считать трёхмерными аналогами кривых Ламе (суперэллипсов).

Примеры суперквадриков

Суперквадрики включают множество поверхностей, сходных по форме с кубом, октаэдром, цилиндром и тором со скруглёнными или острыми углами. Из за их многообразия и относительной простоты являются популярным инструментом геометрического моделирования, включая компьютерную графику.

Некоторые авторы, например Алан Барр, включают в число суперквадрик также суперэллипсоиды и супертороиды[1][2], однако настоящие супертороиды не удовлетворяют данному выше определению; с другой стороны, некоторые суперквадрики являются суперэллипсоидами, хотя ни одно из этих семейств не включает другое.

Формулы

Неявные уравнения

В общем виде суперквадрики описываются формулой

где r, s, t — положительные действительные числа, определяющие свойства суперквадрики.

Например, если r = s = and t то в зависимости от их значения получаются следующие геометрические формы:

  • r = s = t < 1: октаэдр с вогнутыми гранями и острыми рёбрами и вершинами.
  • r = s = t = 1: правильный октаэдр.
  • 1 < r = s = t < 2: октаэдр с выпуклыми гранями и скруглёнными рёбрами и вершинами.
  • r = s = t = 2: сфера.
  • r = s = t > 2: куб со скруглёнными рёбрами и вершинами.
  • r = s = t = ∞: куб.

Более разнообразные формы получаются при независимом изменении параметров. Например, при r=s=2 и t=4 получается фигура вращения, похожая на эллипсоид с плоскими концами. Это частный случай суперэллипсоида, которые получаются из квадрик при r = s.

Если показатели степени могут быть отрицательными, то разнообразие поверхностей ещё более возрастает. Эти формы иногда называют «супергиперболоидами».

Канонические суперквадрики занимают пространство внутри куба со значениями каждой из координат от −1 to +1. В общем виде суперквадрика является результатом масштабирования канонической суперквадрики по каждой из трёх координатных осей. В общем виде уравнение имеет вид

Параметрическое описание

Параметрическое описание в координатах u (долгота) и v (широта) задаётся формулами

где с и s — вспомогательные функции:

и


Plotting code

Математический пакет GNU Octave генерирует суперквадрики следующим скриптом:

 function retval=superquadric(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;
  [i,j] = meshgrid(1:n+1,1:n+1)
  eta = etamin + (i-1) * deta;
  w   = wmin + (j-1) * dw;
  x = a(1) .* sign(cos(eta)) .* abs(cos(eta)).^epsilon(1) .* sign(cos(w)) .* abs(cos(w)).^epsilon(1);
  y = a(2) .* sign(cos(eta)) .* abs(cos(eta)).^epsilon(2) .* sign(sin(w)) .* abs(sin(w)).^epsilon(2);
  z = a(3) .* sign(sin(eta)) .* abs(sin(eta)).^epsilon(3);
  mesh(x,y,z);
  endfunction;


Примечания

  1. Barr, A.H. (January 1981), Superquadrics and Angle-Preserving Transformations. IEEE_CGA vol. 1 no. 1, pp. 11-23
  2. Barr, A.H. (1992), Rigid Physically Based Superquadrics. Chapter III.8 of Graphics Gems III, edited by D. Kirk, pp. 137—159

См. также

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.