Názory k článku Křivky NURBS (2)

  • 10. 3. 2006 3:43

    nerozumim (neregistrovaný)
    Kdyz vychazim z predpokladu, ze clanek/serial mel neco prinest lidem kteri o tematu moc nevedi, tak myslim ze zacal trochu moc zhurta. Jestli je cilem autorky priblizit pocitacovou grafiku masam, mela zacit pozvolna a tak nejak "vtahnout ctenare do tematu". Ja, teorii pocitacove grafiky temer nepostizen, porad nevim proc by me mela zrovna tahle krivka zajimat. Zvlast kdyz nevim jak se modeluji nejake jine, zakladni tvary a objekty, jak to vykreslit a vubec.

    Pokud ale chtela autorka jen probrat nejaky zvlastni matematicky aspekt cehosi tak mam pocit ze se trochu sekla se serverem kde praci publikuje. Vubec nechci rict, ze zde musi byt vsechny clanky jen pro zacatecniky, ale tohle je asi pro vetsinu ctenaru prilis odborne, uzce zamerene a nemajici zadny prakticky prinos.

    Je to jako kdyby kurz chirurgie zacinal cvicenim "nejdriv panovi udelame bypass" a ne ukazkou jak drzet skalpel.
  • 10. 3. 2006 6:49

    pht (neregistrovaný)
    ja, ac NURBS trochu rozumim, souhlasim, ze se v tom prase nevyzna. skoda, nebot jinak je to velmi hezke tema.
  • 10. 3. 2006 8:17

    ava (neregistrovaný)

    Chtěli byste mít doma nějaké "krásné křivky"? S následujícím návodem je získáte snadno. Na obrazovce vašeho počítače, samozřejmě...

    To bohuzel asi ne. Libi se mi pristup Pavla Tisnovskeho ktery pise priklady v clancich tak, ze se vysledky skutecne na obrazovce objevi. Zdrojaky uvedene zde mi bohuzel nic nevykresli :-(

    Pro snazší pochopení je všude brán uzlový vektor, jehož prvních degree+1 složek jsou nuly a posledních degree+1 složek jsou jedničky. Proto se parametr t pohybuje v intervalu 0 .. 1, křivka začíná v prvním řídícím bodě a končí v posledním řídícím bodě, což je pro technickou praxi důležité

    Bohuzel i pres to ze je to pro snazsi pochopeni, jsem nepochopil proc pri volbe tohoto uzloveho vektoru se parametr t pohybuje v 0 .. 1, proc krivka zacina a konci ve zminovanych bodech a proc je to v technicke praxi dulezite. Ale verim ze kdybych se dukladne ponoril do vzorcu z minuleho dile a precetl si nejakou literaturu o nurbs krivkach v technicke praxi tak to pochopim, beru to jako svou chybu.

    Celý algoritmus je založen na opakování metody nazvané knot insertion = vkládání uzlu

    pekna veta, autorka rozhodne neni grafomanka :-)

    Celý algoritmus je založen na opakování metody nazvané knot insertion = vkládání uzlu. Počet těchto opakování je v programu určen proměnnou h. Pokud se parametr t v uzlovém vektoru nevyskytuje, je h rovno stupni křivky. Pokud se parametr t vyskytuje v uzlovém vektoru (t0, t1, ... tn+m+1), opakování knot insertion se o tuto hodnotu sníží. Celý tento postup se nazývá deBoorův, někdy též Cox-deBoorův algoritmus.

    Opet nerozumim :-( volim si h a podle jeho hodnoty mi vyjde pocet opakovani nebo naopak? kde se vezme v uzlovem vektoru parametr t a v jakem tvaru? Co znamena "opakovani knot insertion se o tuto hodnotu snizi"? o jakou hodnotu? jak se vubec muze snizit "opakovani"?

    Jelikož je b-spline funkce stupně nula rovna jedné, jsou prvními výsledky kroku nula samotné řídící body.

    Tomu mi asi nezbyde nez verit.

    Pro parametr t se spočítají hodnoty alfa, což je výraz před bázovými polynomy v definici b-spline funkce. Termin bazovy polynom se v serii objevuje poprve.

    Následně se provede výpočet s hodnotou vypočtenou v předchozím kroku a s příslušnou hodnotou alfa. Celý výpočet se opakuje h-krát.

    Jaky vypocet?

    .......

    samotny zdrojak jiz rozebirat nebudu, ale jak rikam, kdyby se dal opravdu spustit a nebyly to jen komentovane fragmenty kodu, libilo by se mi to podstatne vic.

    Grafikou se nezabyvam, takze toho ze jsem NURBS z clanku nepochopil prilis nelituji. Myslim si ale ze pro lidi co se grafikou zabyvaji existuji schudnejsi cesty jak NURBS vstrebat nez je cteni teto serie.

  • 10. 3. 2006 8:31

    david (neregistrovaný)
    Zda se mi ze ve fragmentech kodu jsou chyby:

    4. pouziva se neexistujici operator in
    6. 7. v cyklech je spatne ukoncovaci podminka, mysleno je zrejme napr. j < h + 1 misto j > h + 1
  • 10. 3. 2006 12:53

    Jindřich Makovička
    in je zjevne klasicke "elementitko", ale taky nechapu, proc ho autorka neopsala pomoci nerovnosti, kdyz jinak vsechno kolem vypada jako C.
  • 10. 3. 2006 14:29

    Culibrk (neregistrovaný)
    Treba proto, ze generovala C z nejakeho pseudo-basicu, ve kterem byvaji casto algoritmy uvadeny ve tretich zdrojich (knizkach). Mozna jsem se netrefil, kazdopadne je videt, ze tento kod nikdy jako C nebezel. Tim nechci snizovat kvalitu algoritmu, spise jeho interpretace v C.
  • 10. 3. 2006 14:54

    Jana Procházková (neregistrovaný)
    Funkcni program najdete na adrese prochazkovajana.ic.cz/files/nurbs2.c Redakce ho asi zapomnela pripojit. Po zadani parametru t se vraci bod na ctvrtkruznici o stredu [0,0,0] a polomeru 1. Staci pridat metodu na vykresleni. Body i vsechny parametry si muzete libovolne menit, jen musi splnovat vstupni podminky.

    Pouziti v technicke praxi je napriklad takove:
    -chcete delat oblouk mostu, prvni a posledni bod musite zadat na krivce
    -pri navazovani nemuzou krajni body jen tak litat nekde uprostred krivky


    Pro parametr t se vypocita bod krivky C(t), to je snad pochopitelne. Parametr t je z intervalu <0,1>, uzlovy vektor je posloupnost cisel take v intervalu <0,1> Pokud se t=t_i pro nejake i=0,1,..,n+m+1, tak se toto cislo v intervalu vyskytuje. Kolikrat je v tom uzlovem vektoru stejne cislo jako t, takove cislo se odecte od stupne krivky a vysledek je promenna h. A tolikrat probehne knot insertion.
  • 10. 3. 2006 15:12

    Culibrk (neregistrovaný)
    Diky.
  • 10. 3. 2006 9:18

    z (neregistrovaný)
    Stupeň křivky se zadává mezi 2 a horní hranicí - vhodně zvolené číslo (je možné i od jedné, potom kreslí lomenou čáru)...

    No to asi nebude obecně platit, že :-) Přímka je taky křivka :-P
  • 10. 3. 2006 14:16

    anonymní
    samozřejemě se dá použít i rozmezí od jedné, ale většina softwaru, co znám, k vykreslení úsečky používá jinou jednoduchou metodu. Je zbytečné používat na ně NURBS, ale samozřejmě to jde.
  • 10. 3. 2006 12:22

    Daniel Mašek
    Nejenze jsou zde chyby v ukoncovacich podminkach cyklu, ale jeste k tomu jsem se po dvou pokracovanich nic nedozvedel :-)
  • 10. 3. 2006 14:32

    Pavel Píša (neregistrovaný)
    Nejsem matematik ani počítačový grafik. V současné době mě však zajímají spojité křivky z pohledu řízení robotů a obráběcích strojů. Protože si myslím, že seriál nezačal příliš šťastně, pokusím rekapitulovat, co jsem pochopil. NURBS není vlastně nic jiného, než vážený průměr bodů řízený přes funkce b_x(t) jedním (v ploše dvěma) parametry. Funkce b_x(t) odpovídají postupně podle řádu delta funkci, rampám ve tvaru trojúhelníku, śekům parabol prvního a vyšších řádů. Je to stejné jako ve statistice a stejně jako u zákona o velkých číslech tedy musí platit, že b_+inf(t) bude Gaussova funkce. To zároveň osvětluje, proč se člověku zdají tyto křivky přirozené a jimi popsané oběkty připomínají člověku známé tvary z přírody. Na rozdíl od klasických rozdělení však NURBS křivky pracují nad neuniformě rozdělenými přírůstky parametru (osy x pro rozdělení) a tím umožňují specifikovat i složitější tvary s různě ostrými hranami. K pochopení mi pomohly především informace z práce Lubomíra Alexandra a článků Pavela Tišnovského. Zároveň i na pravděpodobné autorčině domovské stránce se nachází množství užitečných informací http://prochazkovajana.ic.cz/ Je škoda, že odkazy na tyto informace k článku nepřidala. Též se mi nelíbí, že nebyl přiložen celý kód popisované funkce, protože při jeho napsání a otestování by autorka mohla eliminovat chyby a zvláštnosti, které silně stěžují pochopení. Nyní můj dotaz. Existuje nějaký výpočetně schůdný způsob, jak po úsecích převést NURBS křivku na polinomiální úseky konečného řádu? Předvedený výpočet je iterativní a jeho náročnost třeba pro řízení robota v reálném čase se mi zdá vysoká. Můj první odhad z definice funkce C(t) mi vychází, že je určitě možné funkci pro jednu souřadnici mezi každými dvěma uzly převést na podíl dvou polynomů řádu n, kde n bude lineárně růst se stupněm (spojitosti/hladkosti) NURBS křivky. Bylo by možné se nějak zbavit požadavku na ten podíl? Není nějak zaručeno, že by se sumy ve jmenovateli daly vypočítat dopředu pro celé úseky? Jsou-li váhy shodné, tak je to myslím zaručené. Nejsou-li shodné, tak se mi to zdá problematické. Zabýval se již někdo tímto problémem?
  • 10. 3. 2006 15:09

    Jana Procházková (neregistrovaný)
    do robotiky nevidim, ale zaujalo me k robotice http://www.cs.kent.ac.uk/pubs/1999/825/content.ps
    Jak jsem psala v jine reakci, zdrojak je na adrese prochazkovajana.ic.cz/files/nurbs2.c
  • 10. 3. 2006 17:42

    Pavel Píša (neregistrovaný)
    Děkuji za informace.
    Článek vypadá velmi zajímavě.
  • 10. 3. 2006 14:47

    Pavel Píša (neregistrovaný)

    Nepovedlo se mi formátování, proto posílám příspěvek znovu.

    Nejsem matematik ani počítačový grafik. V současné době mě však zajímají spojité křivky z pohledu řízení robotů a obráběcích strojů.

    Protože si myslím, že seriál nezačal příliš šťastně, pokusím rekapitulovat, co jsem pochopil.

    NURBS není vlastně nic jiného, než vážený průměr bodů řízený přes funkce b_x(t) jedním (v ploše dvěma) parametry. Funkce b_x(t) odpovídají postupně podle řádu delta funkci, rampám ve tvaru trojúhelníku, úekům parabol prvního a vyšších řádů. Je to stejné jako ve statistice a stejně jako u zákona o velkých číslech tedy musí platit, že b_+inf(t) bude Gaussova funkce. To zároveň osvětluje, proč se člověku zdají tyto křivky přirozené a jimi popsané oběkty připomínají člověku známé tvary z přírody.

    Na rozdíl od klasických rozdělení však NURBS křivky pracují nad neuniformě rozdělenými přírůstky parametru (osy x pro rozdělení) a tím umožňují specifikovat i složitější tvary s různě ostrými hranami.

    K pochopení mi pomohly především informace z práce Lubomíra Alexandra a článků Pavela Tišnovského.

    Zároveň i na pravděpodobné autorčině domovské stránce se nachází množství užitečných informací http://prochazkovajana.ic.cz/ Je škoda, že odkazy na tyto informace k článku nepřidala. Též se mi nelíbí, že nebyl přiložen celý kód popisované funkce, protože při jeho napsání a otestování by autorka mohla eliminovat chyby a zvláštnosti, které silně stěžují pochopení.

    Nyní můj dotaz. Existuje nějaký výpočetně schůdný způsob, jak po úsecích převést NURBS křivku na polinomiální úseky konečného řádu? Předvedený výpočet vyžaduje několik iterací a jeho náročnost třeba pro řízení robota v reálném čase se mi zdá vysoká. Můj první odhad z definice funkce C(t) mi vychází, že je určitě možné funkci pro jednu souřadnici mezi každými dvěma uzly převést na podíl dvou polynomů řádu n, kde n bude lineárně růst se stupněm (spojitosti/hladkosti) NURBS křivky. Bylo by možné se nějak zbavit požadavku na ten podíl? Není nějak zaručeno, že by se sumy ve jmenovateli daly vypočítat dopředu pro celé úseky? Jsou-li váhy shodné, tak je to myslím zaručené. Nejsou-li shodné, tak se mi to zdá problematické. Zabýval se již někdo tímto problémem?

Vitalia.cz: Tetanus v USA – i po odřeninách

Tetanus v USA – i po odřeninách

Vitalia.cz: Syndrom PC vidění: stačí dvě hodiny denně

Syndrom PC vidění: stačí dvě hodiny denně

DigiZone.cz: Budoucnost video služeb na internetu

Budoucnost video služeb na internetu

Vitalia.cz: Před, nebo po snídani? Kdy je lepší čistit si zuby

Před, nebo po snídani? Kdy je lepší čistit si zuby

120na80.cz: Vyzrajte na návaly a pocení v přechodu

Vyzrajte na návaly a pocení v přechodu

DigiZone.cz: Konec geoblokace? Ani náhodou…

Konec geoblokace? Ani náhodou…

120na80.cz: Jak si udržet zdravou vaginu

Jak si udržet zdravou vaginu

Podnikatel.cz: Alza radí e-shopům, jak opustit Heureku

Alza radí e-shopům, jak opustit Heureku

Vitalia.cz: Dnešní patolog o mrtvolu téměř nezavadí

Dnešní patolog o mrtvolu téměř nezavadí

Vitalia.cz: 7 nemocí očí, které musíte léčit včas

7 nemocí očí, které musíte léčit včas

DigiZone.cz: Šlágr TV: pokuta 100 tisíc za on-line

Šlágr TV: pokuta 100 tisíc za on-line

Lupa.cz: Válka e-shopů. Alza končí s Heurekou

Válka e-shopů. Alza končí s Heurekou

Lupa.cz: Přenos hokeje padal kvůli útoku, tvrdí O2

Přenos hokeje padal kvůli útoku, tvrdí O2

Lupa.cz: Babiš: nevím o návodu, jak obejít blokování webů

Babiš: nevím o návodu, jak obejít blokování webů

Podnikatel.cz: Proměny stavebnice Seva. Znáte ji?

Proměny stavebnice Seva. Znáte ji?

Vitalia.cz: Ministerstvo: tyto příbory jsou nebezpečné

Ministerstvo: tyto příbory jsou nebezpečné

Root.cz: Cenzura internetu prošla, i přes pochyby senátorů

Cenzura internetu prošla, i přes pochyby senátorů

Vitalia.cz: Muži kouří 24 cigaret denně, ženy o dost míň

Muži kouří 24 cigaret denně, ženy o dost míň

DigiZone.cz: ČT neskončí s nízkým rozlišením podle plánu

ČT neskončí s nízkým rozlišením podle plánu

Root.cz: Zákon o hazardu je v rozporu s ústavou

Zákon o hazardu je v rozporu s ústavou