Superneliöt ovat geometristen pintojen perhe, joka määritellään ellipsoidin ja muiden toisen asteen pintojen yhtälöllä , jossa 2:n eksponentit korvataan mielivaltaisella luvulla. Niitä voidaan pitää Lame-käyrien (superellipsien) kolmiulotteisina analogeina .
Superquadrics sisältää monia pintoja, jotka ovat muodoltaan samanlaisia kuin kuutio , oktaedri , sylinteri ja toru , joissa on pyöristetyt tai terävät kulmat. Monimuotoisuuden ja suhteellisen yksinkertaisuuden vuoksi ne ovat suosittu työkalu geometriseen mallinnukseen, mukaan lukien tietokonegrafiikka.
Jotkut kirjailijat, kuten Alan Barr, sisältävät superellipsoidit ja supertoroidit [1] [2] superneliöinä, mutta todelliset supertoroidit eivät täytä yllä annettua määritelmää; toisaalta jotkut superneliöt ovat superellipsoideja, vaikka mikään näistä perheistä ei sisällä toista.
Yleensä superneliöt kuvataan kaavalla
missä r , s , t ovat positiivisia reaalilukuja, jotka määrittävät superneljän ominaisuudet.
Esimerkiksi jos r = s = ja t , niin niiden arvosta riippuen saadaan seuraavat geometriset muodot:
Monipuolisempia muotoja saadaan muuttamalla parametreja itsenäisesti. Esimerkiksi, kun r = s = 2 ja t = 4, saadaan pyörimisluku, joka on samanlainen kuin ellipsoidi, jolla on litteät päät. Tämä on superellipsoidin erikoistapaus, joka saadaan neliöistä, joissa r = s .
Jos eksponentit voivat olla negatiivisia, niin pintojen vaihtelu kasvaa entisestään. Näitä muotoja kutsutaan joskus "superhyperboloideiksi".
Kanoniset superneliöt vievät tilaa kuution sisällä, jonka kunkin koordinaatin arvot ovat −1:stä +1:een. Yleisesti ottaen superneliö on tulos kanonisen superneliön skaalaamisesta kutakin kolmea koordinaattiakselia pitkin. Yleensä yhtälöllä on muoto
Parametrien kuvaus u (pituusaste) ja v (leveysaste) -koordinaateissa saadaan kaavoista
missä c ja s ovat apufunktioita:
ja
GNU Octave matematiikkapaketti luo superquadrics seuraavalla komentosarjalla :
funktio retval = superquadric ( epsilon,a ) n = 50_ _ etamax = pi / 2 ; etamiini = -pi / 2 ; _ wmax = pi ; wmin = - pi ; deta =( etamax - etamin ) / n ; dw =( wmax - wmin ) / n ; k = 0_ _ l = 0 ; [ i , j ] = verkkoverkko ( 1 : n + 1 , 1 : n + 1 ) eta = etamiini + ( i - 1 ) * deta ; w = wmin + ( j - 1 ) * dw ; x = a ( 1 ) .* merkki ( cos ( eta )) .* abs ( cos ( eta )) .^ epsilon ( 1 ) .* merkki ( cos ( w )) .* abs ( cos ( w )) .^ epsilon ( 1 ); y = a ( 2 ) .* merkki ( cos ( eta )) .* abs ( cos ( eta )) .^ epsilon ( 2 ) .* merkki ( sin ( w )) .* abs ( sin ( w )) .^ epsilon ( 2 ); z = a ( 3 ) .* merkki ( sin ( eta )) .* abs ( sin ( eta )) .^ epsilon ( 3 ); verkko ( x , y , z ); lopputoiminto ;