Implicitna kriva

Izvor: testwiki
Idi na navigaciju Idi na pretragu
Cassinijevi ovali:
(1) a=1.1, c=1 (iznad),
(2) a=c=1 (sredina),
(3) a=1, c=1,05 (ispod)
Implicitna kriva: sin(x+y)cos(xy)+1=0
Implicitna kriva sin(x+y)cos(xy)+1=0 kao krive nivoa površine z=sin(x+y)cos(xy)+1

U matematici, implicitna kriva je ravanska kriva definirana implicitnom jednadžbom koja povezuje dvije koordinatne varijable, obično x i y . Naprimjer, jedinični krug je definiran implicitnom jednadžbom x2+y2=1. Općenito, svaka implicitna kriva je definirana jednadžbom oblika: F(x,y)=0 za neku funkciju F od dvije varijable. Stoga se implicitna kriva može smatrati skupom nula funkcije dvije varijable. Implicitno znači da jednačina nije izražena kao rješenje ni za x u terminima y ili obrnuto.

Ako je F(x,y) polinom u dvije varijable, odgovarajuća kriva se naziva algebarska kriva, a za proučavanje su dostupne specifični metodi.

Ravne krive se mogu predstaviti u Kartezijanskim koordinatama (x, y koordinate) bilo kojim od tri metoda, od kojih je jedna implicitna jednačina data gore. Grafikon funkcije se obično opisuje jednadžbom y=f(x) u kojoj je eksplicitno naveden funkcionalni oblik; ovo se zove "eksplicitna" reprezentacija. Treći osnovni opis krive je parametrijska, gdje su x- i y-koordinate tačaka krive predstavljene sa dvije funkcije Šablon:Math čije su obje funkcionalne forme eksplicitno navedene i koje zavise od zajedničkog parametra t.

Primjeri implicitnih krivulja uključuju:

  1. pravu: x+2y3=0,
  2. krug: x2+y24=0,
  3. polukubna parabola:x3y2=0,
  4. Cassinijeve ovale (x2+y2)22c2(x2y2)(a4c4)=0 (vidi dijagram),
  5. sin(x+y)cos(xy)+1=0 (vidi dijagram).

Prva četiri primjera su algebarske krive, ali posljednji nije algebarski. Prva tri primjera posjeduju jednostavne parametarske reprezentacije, što nije tačno za četvrti i peti primjer. Peti primjer pokazuje eventualno komplikovanu geometrijsku strukturu implicitne krive.

Teorema o implicitnoj funkciji opisuje uslove pod kojima se jednadžba F(x,y)=0 može riješiti implicitno za x i/ili y' ' – odnosno pod kojim se može valjano pisati x=g(y) or y=f(x). Ova teorema je ključ za izračunavanje bitnih geometrijskih karakteristika krive: tangentas, normale i zakrivljenost. U praksi implicitne krive imaju suštinski nedostatak: njihova vizualizacija je teška. Ali postoje kompjuterski programi koji omogućavaju prikaz implicitne krive. Posebna svojstva implicitnih krivulja čine ih osnovnim alatima u geometriji i kompjuterskoj grafici.

Implicitna kriva sa jednadžbom F(x,y)=0 može se smatrati kao krivulja nivoa nivoa 0 površine z=F(x,y) (vidi treći dijagram).

Nagib i zakrivljenost

Općenito, implicitne krive ne ispunjavaju test vertikalne linije (što znači da su neke vrijednosti x povezane s više od jedne vrijednosti y) i stoga nisu nužno grafovi funkcija. Međutim, teorem o implicitnoj funkciji daje uslove pod kojima je implicitna kriva "lokalno" data grafom funkcije (tako da posebno nema samopresecanja). Ako su relacije definiranja dovoljno glatke, onda u takvim područjima implicitne krive imaju dobro definirane nagibe, tangente, vektore normale i zakrivljenost.

Postoji nekoliko mogućih načina za izračunavanje ovih veličina za datu implicitnu krivu. Jedan je korištenje implicitne diferencijacije za izračunavanje izvedenica od y u odnosu na x. Alternativno, za krivu koju definiše implicitna jednadžba F(x,y)=0, ove formule se mogu izraziti direktno u terminima djelimičnih derivata od F. U nastavku se označavaju parcijalne derivacije Fx (za derivaciju u odnosu na x), Fy, Fxx (za drugi parcijal u odnosu na x), Fxy (za mešoviti drugi parcijal), Fyy.

Tangentni i normalni vektor

Tačka krive (x0,y0) je regularna ako su prvi parcijalni derivati Fx(x0,y0) i Fy(x0,y0) nisu oba jednaka 0.

Jednačina tangentne prave u regularnoj tački (x0,y0) je

Fx(x0,y0)(xx0)+Fy(x0,y0)(yy0)=0,

pa je nagib tangentne linije, a samim tim i nagib krive u toj tački:slope=Fx(x0,y0)Fy(x0,y0).

Ako jeFy(x,y)=0Fx(x,y) na (x0,y0), kriva okomita u toj tački, dok ako su obje < math>F_y(x,y)=0</math> i Fx(x,y)=0 u toj tački tada se kriva tamo ne može razlikovati, već je umjesto toga singularna tačka – ili vrvica ili tačka u kojoj se kriva siječe. Normalni vektor na krivu u tački je dat sa:𝐧(x0,y0)=(Fx(x0,y0),Fy(x0,y0)) (ovdje napisano kao vektor reda).

Zakrivljenost

Radi čitljivosti formula, argumenti (x0,y0) su izostavljeni. Zakrivljenost κ u regularnoj tački je data formulom:κ=Fy2Fxx+2FxFyFxyFx2Fyy(Fx2+Fy2)3/2.[1]

Izvođenje formula

Teorema o implicitnoj funkciji jamči unutar susjedstva tačke (x0,y0) postojanje funkcije f takve da F(x,f(x))=0. Po pravilu lanca, derivati funkcije f su: f(x)=Fx(x,f(x))Fy(x,f(x)) and f(x)=Fy2Fxx+2FxFyFxyFx2FyyFy3 (gde su argumenti (x,f(x)) na desnoj strani druge formule izostavljeni radi lakšeg čitanja).

Umetanje izvoda funkcije f u formule za tangentu i zakrivljenost grafikona eksplicitne jednačine y=f(x) daje: y=f(x0)+f(x0)(xx0) (tangenta)

κ(x0)=f(x0)(1+f(x0)2)3/2 (zakrivljenost).

Prednosti i nedostaci implicitnih krivulja

Nedostatak

Suštinski nedostatak implicitne krive je nedostatak lahke mogućnosti izračunavanja pojedinačnih tačaka koje su neophodne za vizualizaciju implicitne krive (vidi sljedeći odjeljak).

Prednosti

  1. Implicitne reprezentacije olakšavaju izračunavanje tačaka preseka: ako je jedna kriva predstavljena implicitno, a druga parametarski, za izračunavanje tačaka presjeka potrebna je samo jednostavna (1-dimenzijska) Newtonova iteracija, što je suprotno slučajevima implicitno-implicitno i parametarski-parametarski (pogledajte Presjek).
  2. Implicitna reprezentacija F(x,y)=0 daje mogućnost odvajanja tačaka koje nisu na krivulji znakom F(x,y). Ovo može biti od pomoći, naprimjer, primjena metoda lažne pozicije umjesto Newtonove iteracije.
  3. Lahko je generirati krive koje su skoro geometrijski slične datoj implicitnoj krivulji F(x,y)=0, samo dodavanjem malog broja: F(x,y)c=0 (pogledajte odjeljak #Glatke aproksimacije).

Primjene implicitnih krivulja

Glatka aproksimacija konveksnog poligona
Glatka aproksimacija 1) jedne polovine kruga, 2) presjeka dva kruga

Unutar matematike implicitne krive igraju istaknutu ulogu kao algebarske krive. Osim toga, implicitne krive se koriste za dizajniranje krivulja željenih geometrijskih oblika. Evo dva primjera.

Glatke aproksimacije

Konveksni poligoni

Glatka aproksimacija konveksnog poligona može se postići na sljedeći način: Neka gi(x,y)=aix+biy+ci=0, i=1,,n su jednadžbe linija koje sadrže rubove poligona tako da je za unutrašnju tačku poligona gi pozitivan. Zatim podskup implicitne krive:F(x,y)=g1(x,y)gn(x,y)c=0 sa odgovarajućim malim parametrom c je glatka (diferencijabilna) aproksimacija poligona. Naprimjer, krive:F(x,y)=(x+1)(x+1)y(xy+2)(xy+2)c=0 za c=0.03,,0.6 sadrže glatke aproksimacije poligona sa 5 ivica (vidi dijagram).

Parovi linija

U slučaju dva reda:F(x,y)=g1(x,y)g2(x,y)c=0 dobija se

olovka paralelnih linija, ako su date prave paralelne ili
olovka hiperbola, koje imaju date linije kao asimptote.

Naprimjer, proizvod varijabli koordinatnih osa daje olovku hiperbola xyc=0, c0, koje imaju koordinatne ose kao asimptote.

Ostale

Ako se krene s jednostavnim implicitnim krivuljama koje nisu prave (krugovi, parabole,...) dobija se širok raspon zanimljivih novih krivulja. Naprimjer,

F(x,y)=y(x2y2+1)c=0

(proizvod kruga i x-ose) daje glatke aproksimacije jedne polovine kruga (vidi sliku), i:F(x,y)=(x2(y+1)2+4)(x2(y1)2+4)c=0 (proizvod dva kruga) daje glatke aproksimacije presjeka dva kruga (vidi dijagram).

Krive miješanja

Kriva miješanja (crvena) dva kruga

U CAD se koriste implicitne krive za generiranje krivulja miješanjes,[2][3] koje su posebne krive uspostavljanjah glatki prijelaza između dvije date krive. Naprimjer,: F(x,y)=(1μ)f1f2μ(g1g2)3=0 generira krivulje miješanja između dva kruga

f1(x,y)=(xx1)2+y2r12=0,
f2(x,y)=(xx2)2+y2r22=0.

Metod garantuje kontinuitet tangenti i zakrivljenosti u tačkama dodira (vidi dijagram). Dvije prave:g1(x,y)=xx1=0, g2(x,y)=xx2=0 određuje dodirne tačke na krugovima. Parametar μ je parametar dizajna. U dijagramu, μ=0.05,,0.2.

Ekvipotencijalne krive dva tačkasta naelektrisanja

Ekvipotencijalne krive dva tačkastog naboja u plavim tačkama

Ekvipotencijalna krivas od dva jednaka tačkasta naboja u tačkama P1=(1,0),P2=(1,0) može se predstaviti jednadžbom:f(x,y)=1|PP1|+1|PP2|c

=1(x1)2+y2+1(x+1)2+y2c=0.

Krive su slične Cassinijevim ovalima, ali nisu takve krive.

Vizualizacija implicitne krive

Za vizualizaciju implicitne krive obično se određuje poligon na krivulji i prikazuje se poligon. Za parametarsku krivu ovo je lak zadatak: samo se izračunavaju tačke niza parametarskih vrijednosti. Za implicitnu krivu potrebno je riješiti dva podproblema:

  1. određivanje prve tačke krivulje do date početne tačke u blizini krive,
  2. određivanje tačke krivulje počevši od poznate tačke krivulje. U oba slučaja razumno je pretpostaviti gradF(0,0). U praksi je ova pretpostavka narušena samo u pojedinačnim izolovanim tačkama.

Tačkasti algoritam

Za rješavanje oba gore navedena zadatka neophodno je imati kompjuterski program (koji ćemo nazvati 𝖢𝖯𝗈𝗂𝗇𝗍), koji kada mu je data tačka Q0=(x0,y0) blizu implicitne krive, pronalazi tačku P koja je tačno na krivulji:

(P1) jer je početna tačka j=0
(P2) ponavljanje
(xj+1,yj+1)=(xj,yj)F(xj,yj)Fx(xj,yj)2+Fy(xj,yj)2(Fx(xj,yj),Fy(xj,yj))
(Njutnov korak za funkciju g(t)=F(xj+tFx(xj,yj),yj+tFy(xj,yj)) .)
(P3) sve dok razmak između tačaka (xj+1,yj+1),(xj,yj) nije dovoljno mali.
(P4) P=(xj+1,yj+1) je tačka krive blizu početne tačke Q0 .

Algoritam praćenja

Na algoritm u praćenja: početne tačke su zelene

Da bi se generirao gotovo jednako raspoređen poligon na implicitnoj krivulji, bira se dužina koraka s i

(T1)' bira odgovarajuću početnu tačku u blizini krivulje
(T2) određuje prvu tačku krive P1 koristeći program 𝖢𝖯𝗈𝗂𝗇𝗍
(T3) određuje tangentu (vidi gore), bira početnu tačku na tangenti koristeći dužinu koraka s (vidi dijagram) i određuje drugu tačku krivulje P2 pomoću programa 𝖢𝖯𝗈𝗂𝗇𝗍 .

Budući da algoritam prati implicitnu krivu, naziva se „algoritam praćenja“. Algoritam prati samo povezane dijelove krive. Ako se implicitna kriva sastoji od nekoliko dijelova, mora se pokrenuti nekoliko puta s odgovarajućim polaznim tačkama.

Primjer: Ilustracija rasterskog algoritma primijenjenog na implicitnu krivu F(x,y)=(3x2y2)2y2(x2+y2)4=0. Kriva (crvena) je ono što algoritam pokušava nacrtati. Rasterske tačke (crne) koriste se kao početne tačke za pronalaženje najbližih tačaka na krivulji (crveni krugovi). Razmak između svake rasterske tačke je preuveličan da bi se prikazale pojedinačne tačke krivulje; da bi se tačnije pratila kriva, koristilo bi se više rasterskih tačaka.[4]

Raster algoritam

Ako se implicitna kriva sastoji od nekoliko ili čak nepoznatih dijelova, možda bi bilo bolje koristiti rasterizacija algoritam. Umjesto da tačno prati krivu, rasterski algoritam pokriva cijelu krivu u toliko tačaka da se one stapaju i izgledaju kao kriva.

(R1)' Generiranje mreže tačaka (raster) na području od interesa x-y ravni.
(R2) Za svaku tačku P u rasteru, pokrene se algoritam tačaka 𝖢𝖯𝗈𝗂𝗇𝗍 počevši od P, a zatim označava njegov izlaz.

Ako je mreža dovoljno gusta, rezultat aproksimira povezane dijelove implicitne krive. Ako su za dalje primjene potrebni poligoni na krivuljama, mogu se pratiti dijelovi od interesa pomoću algoritma praćenja.

Implicitne prostorne krive

Bilo koja prostorna kriva koja je definirana s dvije jednačine

F(x,y,z)=0,G(x,y,z)=0

naziva se implicitna prostorna kriva. Tačka krivulje (x0,y0,z0) naziva se regularna ako je unakrsni proizvod nagiba F i G</math>nije<math>(0,0,0) u ovom trenutku:

𝐭(x0,y0,z0)=gradF(x0,y0,z0)×gradG(x0,y0,z0)(0,0,0);

inače se naziva jednina. Vektor 𝐭(x0,y0,z0) je tangentni vektor krive u tački (x0,y0,z0).

Kriva presjeka između sfere i cilindra

Primjeri:

(1)x+y+z1=0 , xy+z2=0

je prava.

(2)x2+y2+z24=0 , x+y+z1=0

je ravan presjeka sfere, dakle krug.

(3)x2+y21=0 , x+y+z1=0

je elipsa (ravan presjek cilindra).(4)x2+y2+z216=0 , (yy0)2+z29=0
je presečna kriva između kugle i cilindra.

Za izračunavanje tačaka krive i vizualizaciju implicitne prostorne krive pogledajte Presjek.

Također pogledajte

Reference

Šablon:Reflist

  • Gomes, A., Voiculescu, I., Jorge, J., Wyvill, B., Galbraith, C.: Implicit Curves and Surfaces: Mathematics, Data Structures and Algorithms, 2009, Springer-Verlag London, Šablon:ISBN
  • C:L: Bajaj, C.M. Hoffmann, R.E. Lynch: Tracing surface intersections, Comp. Aided Geom. Design 5 (1988), 285-307.

Vanjski linkovi

Šablon:Commons category

  1. Šablon:Cite journal
  2. C. Hoffmann & J. Hopcroft: The potential method for blending surfaces and corners in G. Farin (Ed) Geometric-Modeling, SIAM, Philadelphia, pp. 347-365
  3. E. Hartmann: Blending of implicit surfaces with functional splines, CAD,Butterworth-Heinemann, Volume 22 (8), 1990, p. 500-507
  4. G. Taubin: Distance Approximations for Rastering Implicit Curves. ACM Transactions on Graphics, Vol. 13, No. 1, 1994.