Miten lasketaan ympyrän halkaisija vastaavasta ellipsistä, jolla on sama kehän pituus? Eli miten lasketaan litistetyn putken alkuperäinen halkaisija, jolloin se vielä oli pyöreä? Näin maalaisjärjellä ajateltuna se voisi olla ellipsin korkeuden ja leveyden keskiarvo, mutta eihän sitä koskaan tiedä millainen superkaava siihenkin tarvitaan.
Jos tiedät ellipsin kehän pituuden, niin se on helppoa: ellipsin kehän pituus jaetaan piillä.
Jos taas on muut tiedot käytössä (esim. ellipsin akselien pituudet ja eksentrisyys), niin sitten homma on hieman hankalampaa, sillä ellipsin kehän pituutta p ei voi alkeisfunktioiden avulla lausua suljetussa muodossa. Kaava wikipediassa
Löytyykö mitään likiarvokaavaa, jos kehän pituutta ei tunneta ? JVM
Elliptisen integraalin voi laskea numeerisesti tai voit käyttää Ramanujanin kaavaa.
Resiina kirjoitti:
miten lasketaan litistetyn putken alkuperäinen halkaisija, jolloin se vielä oli pyöreä?
Jos kyse on konkreettisesta putkesta, katsotaan mittanauhalla ympärys ja jaetaan piillä.
Teen tosiaan kaverille sellaista ohjelmaa, joka lataa bittikartasta kuvion, ja tämän kuvion pinta-ala ja muita juttuja siitä pitäisi laskea. Kävi juuri vielä ilmi, että kuvio ei välttämättä olekaan vain ellipsin muotoinen, joten ei apuun enää tässä asiassa olekaan ehkä tarvetta. Pitää vain siis kuvion kehän pituus laskea ja siitä sitten saa sen halkaisijan selville. Kiitos vinkeistä kuitenkin.
Miten muuten ajattelit selvittää bittikartasta kehän pituuden? Vektoroit sen ensin samaan tyyliin kuin trace-ohjelmat ja sitten lasket niistä?
No ei sen kovin tarkkaa tarvi olla, eikä kuviot tule olemaan kovin monimutkaisia, niin ajattelin että kuvion reunimmaisten pikseleiden määrä voisi olla melko lähellä oikeaa arvoa.
Joo, vinoneliössä heittää vain noin 40%..
Nojoo nii... No mitenkä sitten tämmönen vektorointi onnistuisi?
Jaa-a, sepä onkin hyvä kysymys, kun kaupalliset trace softatkin tuntuvat tekevän enemmän tai vähemmän huonoa jälkeä.
Kun kerran tarkkuus ei tarvitse ihan valtava olla, niin lähtisin ehkä siitä, että muodostaisin vaan monikulmion. Ensin voisi tehdä kunkin reunapikselin keskipisteestä seuraavaan. Sen jälkeen poistaisi kaikki välietapit, jotka eivät vaikuta lopputulokseen ja sen jälkeen poistaisi vaikka joka toisen välipisteen, jos sen poisto ei aiheuttaisi liian suurta muutosta (esim. >=1px etäisyyttä todellisesta pisteestä.) ja tuota viimeistä siteen looppaisi kunnes mitään muutoksia ei tule.
Juu, meinasinkin ehdottaa valmiin kirjaston käyttöä, mutta esim. tuon kuppikisan tuotoksista ei toisaalta ole mitenkään triviaalia laskea ulkokehän pituutta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.