Closed aXu-AP closed 12 years ago
Korjattu sinun CB-koodin tavalla. Kiitos paljon :)
Kiva ettei tullut tehtyä turhaa työtä :) Se minun koodi ei sitten tarkista, onko lopputulos välillä 0-360, eli tuo tarkistus kannattaa tietty muistaa lisätä siihen. Ja se ensimmäisellä rivillä oleva WrapAngle olikin ihan turha, seuraavat rivit pitävät huolen siitä, jos kulmien ero on suurempi kuin 180 korjataan se.
Hyvä huomio. Tein muutokset cbEnchantediin myös ;D
Eh, mitähän minä silloin ajattelin, tuossa ekalla rivillä lisätään uuteen kulmaan 180 astetta, seuraavalla rivillä lisätään toisen kerran 180 astetta (ja vähennetään siitä edellinen)... eli ensimmäinen rivi on täysin turha ja toiselta riviltä se + 180 on myös ylimääräinen (jälkimmäinen kompensoi ensimmäisen aiheuttamaa virhettä). Eli (toivottavasti) lopullinen cb-versio tästä on:
Function CurveAngle2(newA#, oldA#, smooth#)
ADiff# = oldA - newA
While ADiff > 180
ADiff - 360
Wend
While ADiff < -180
ADiff + 360
Wend
Return WrapAngle(oldA - ADiff / smooth)
EndFunction
Heh, laitoin vielä tuonkin :D. Voit muuten saada helpommin koodin rivitettyä kun käytät kolmea backtickiä (```), säästyt turhalta HTML-koodilta ja nuo < ja > merkit toimivat myös oikein.
Katsos, niinpä toimiikin :D En ole mistään löytänyt kattavaa selitystä tästä githubin merkintäsysteemistä (vaikka tuo kyllä löytyi cheat sheetistä). Yksi juttu mitä en ole kanssa löytänyt, on yliviivaus.
CurveAngle ei osaa käsitellä vastapäivään 360 asteen ylittämistä:
(pyöritä hiirtä vastapäivään keskipisteen ympäri)