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: Mango – ovoce bohů

Mango – ovoce bohů

120na80.cz: Dejte sbohem pigmentovým skvrnám

Dejte sbohem pigmentovým skvrnám

DigiZone.cz: Joj u nás spustí nový kanál

Joj u nás spustí nový kanál

Vitalia.cz: Rybí tatarák – z lososa i z kapra

Rybí tatarák – z lososa i z kapra

120na80.cz: Lepší poporodní sexuální život? Žádný problém

Lepší poporodní sexuální život? Žádný problém

Vitalia.cz: Koukám, co bych dobrého snědla, abych zhubla

Koukám, co bych dobrého snědla, abych zhubla

Podnikatel.cz: Oznamte skutečné sídlo firmy, jinak zaplatíte

Oznamte skutečné sídlo firmy, jinak zaplatíte

Root.cz: LED lze přetaktovat. Kolik vydrží?

LED lze přetaktovat. Kolik vydrží?

Měšec.cz: Co s reklamací, když e-shop krachuje?

Co s reklamací, když e-shop krachuje?

Lupa.cz: Trash Made: je libo šperky z vysloužilé elektroniky?

Trash Made: je libo šperky z vysloužilé elektroniky?

Měšec.cz: Do ostravské MHD bez jízdenky. Stačí karta

Do ostravské MHD bez jízdenky. Stačí karta

DigiZone.cz: Ultra HD: TV vysílání budoucnosti

Ultra HD: TV vysílání budoucnosti

Lupa.cz: Kdo vykrádá LinkedIn? Zjistit to má soud

Kdo vykrádá LinkedIn? Zjistit to má soud

DigiZone.cz: AXN u FreeSatu měsíc zdarma

AXN u FreeSatu měsíc zdarma

Vitalia.cz: Domácí limonády: Někde ovoce, jinde šťáva za pade

Domácí limonády: Někde ovoce, jinde šťáva za pade

DigiZone.cz: E! a zákulisí turné Mariah Carey

E! a zákulisí turné Mariah Carey

Podnikatel.cz: Pozor na vykuky, imitují služby České pošty

Pozor na vykuky, imitují služby České pošty

Měšec.cz: Co když na dovolené přijdete o kartu?

Co když na dovolené přijdete o kartu?

DigiZone.cz: Test TV Samsung UE49K6372SU

Test TV Samsung UE49K6372SU

DigiZone.cz: Pevnost Boyard v září a česká

Pevnost Boyard v září a česká