Lineaarne interpolatsioon, rohkem tuntud kui Lerp, on meetod, mida kasutatakse punkti arvutamiseks, mis asub joone vรตi kรตvera kahe teise punkti vahel. Seda tehnikat kasutatakse laialdaselt erinevates valdkondades, nagu arvutigraafika ja mรคnguarendus. Selles artiklis uurime pรตhjalikult, mis on Lerp ja kuidas seda Javas rakendada.
Lerp on matemaatiline termin, mis tรคhistab lineaarset interpolatsiooni. See on viis, kuidas luua vรครคrtus kahest teadaolevast vรครคrtusest, arvestades nende kahe murdosa. See vรตib tunduda รผsna keeruline, kuid tegelikult on see รผsna lihtne kontseptsioon. Lineaarset interpolatsiooni kasutatakse tavaliselt arvutigraafikas andmete ligikaudseks hindamiseks, kui pole piisavalt detaile, ning mรคnguarenduses sujuva animatsiooni ja รผleminekute loomiseks.
public class Lerp { public static float lerp(float point1, float point2, float fraction) { return (1 - fraction) * point1 + fraction * point2; } }
Lerpi funktsiooni mรตistmine
Et paremini mรตista, kuidas Lerp tรถรถtab, vรตtab see funktsioon kolme parameetrit: punkt1 ja punkt2, mis esindavad kahte teadaolevat vรครคrtust, mida me varem mainisime, ja murdosa, mis tรคhistab kahe punkti vahelist murdosa. Tulemuseks on uus punkt, mis asub neid kahte punkti รผhendaval lรตigul, mis pรตhineb murdosa kaugusel.
Funktsioon on รผsna lihtne ja toimib jรคrgmiselt:
1. Esmalt arvutab see kauguse punktist 1 lรตpp-punktini (kui punkti 1 loetakse alguspunktiks), nagu oleks murdosa protsent kogu sirglรตigust.
2. Seejรคrel arvutab see kauguse alguspunktist vajaliku punktini.
3. Lรตpuks liidab see need kaks distantsi kokku, et saada lรตpptulemus.
Analรผรผsime seda nรคitega:
public class Main { public static void main(String[] args) { float point1 = 1.0f; float point2 = 2.0f; float fraction = 0.5f; float result = Lerp.lerp(point1, point2, fraction); System.out.println("The interpolated point is: " + result); } }
Java raamatukogud interpoleerimiseks
Kuigi Java-l pole interpoleerimiseks sisseehitatud teeki, on olemas mitu kolmanda osapoole teeki, mis pakuvad igakรผlgset tuge erinevat tรผรผpi interpoleerimiseks, sealhulgas lineaarseks interpoleerimiseks. Apache Commons Math teek on รผks selline teek, mis pakub laia valikut matemaatilisi funktsioone, sealhulgas mitmeid erinevaid interpoleerimismeetodeid.
Teine populaarne valik on 3D-graafika Jzy3d teek, mis pakub muude funktsioonide hulgas tรถรถriistu lineaarseks ja mittelineaarseks interpoleerimiseks.
Jรคreldus
Lineaarne interpolatsioon (Lerp) on vรตimas tรถรถriist paljudes valdkondades, sealhulgas animatsioon ja mรคnguarendus, arvutigraafika, fรผรผsika ja statistika, kui nimetada vaid mรตnda. Oleme uurinud selle pรตhikontseptsiooni, selle toimimist ja seda, kuidas seda Javas rakendada. See on vaid pinna kriipimine, kuna Lerpi saab laiendada ka 2D- ja 3D-le, mis teeb sellest veelgi vรตimsama tรถรถriista. Pidage meeles, et praktika on mis tahes kontseptsiooni omandamise vรตti, nii et jรคtkake kodeerimist ja katsetamist!