[python] Vykreslování grafů

Karel Šrot karel.do.pekla.zajel na seznam.cz
Středa Červen 6 07:51:50 CEST 2007


Zdravim,

> Další problém s divokými funkcemi. Zkoušel jsem testovat mechanizmus že 
> pokud je rozdíl dvou funkčních hodnot vedle sebe větší než 10 tak se 
> body nespojí. Bylo to relativně rychlé, ale docházelo k nesrovnalostem 
> na kvadratické funkci při standardním zvětšení protože graf kvadratické 
> funkce připomíná skoro přímku.... 

Rozdil dvou funkcnich hodnot vetsi jak deset.. Takovy test nema smysl. U 
rychle rostoucich funkci ten rozdil bude vetsi jak deset (a 
predpokladam, ze ten rozdil deset je uz prepocitan na pixely platna, 
protoze jinak to absolutne nema smysl). Spravnou reakci na tento rozdil 
neni body nespojit, ale zvysit pocet referencnich bodu, tj. vlozit mezi 
ne jeste jeden (ci vice) bod. Nespojovat body teprve v pripade, ze uz 
jsou dodatecne nahusto.
   Take mi neni jasne, jak muze parabola, byt jen vzdalene, pripominat 
primku. Zrejme myslite to V, ktere se tam jakoby udelalo. V grafu nemate 
vubec uvedene meritko, ale sam jste rekl, ze parabola roste velmi 
rychle. Pod to se da jedine podepsat. Proste ta "kulatejsi" cast dole je 
pod rozlisovaci schopnost grafu (a objevi se teprve po priblizeni, aspon 
doufam). To je take zrejme ten duvod, proc neni ten graf az nahoru. Opet 
by to chtelo zvysit pocet referencnich bodu (bud se nejakou metodou 
deleni intervalu dobrat k bodu, ktery uz je temer nahore resp. mirne 
nad... nebo muzete rovnou predpokladat, ze ten usek funkce jdouci mimo 
je usecka a rovnou cast te usecky nakreslit).


Takže jsem začal počítat odchylku
> vektorů dvou 4 sousedících bodů. Výsledky byli stejné, i u kvadratické 
> funkce došlo k deformaci:( a navíc to bylo strašně pomalé. 

Ze to bude pomale, to jsem jiz psal drive. Ja teda uvazoval sousedni dva 
vektory urcene trema body. Ale zde je samozrejme nutna nejaka 
optimalizace vypoctu, kdy mimojine nebudete pocitat ten uhel, ale jen 
kosinus (napr. ze skalarniho soucinu a velikosti vektoru), dokonce snad 
jen druhou mocninu, aby nebylo nutne odmocnovat (a pak tedy porovnavat 
vuci nejake hranicni hodnote kosinu pro vami zvoleny uhel).

> Nebo jestli si myslíte že nevadí že se ty kvadraticý funkce zobrazují 
> trochu zkresleně, mohl bych to nechat tak jak to je....

Co bych vam navrhnoul je, abyste na chvili spojoval vsechny body, 
podival se, jakou funkci to kresli (zkusil si to i pri vetsim rozliseni 
grafu) a pak se (podle ziskanych vysledku a toho, jak moc se lisi od 
nakresleneho grafu) nad tim "nespojovanim" zamyslel. Uz jsem psal, ze 
toto ma smysl pouze pokud jsou body dostatecne nahusto.

Drzim palce
Karel


Další informace o konferenci Python