Closed kukkamario closed 12 years ago
Postasin nämä jo foorumeille, mutta tässä on maailma=>näyttö cb:llä toteutettuna:
Function WToSX(X#, Y#)
X = (X - CameraX()) * cbeCameraZoom()
Y =-(Y - CameraY()) * cbeCameraZoom()
A# = GetAngle(0, 0, X, Y) - cbeCameraAngle()
D# = Distance(0, 0, X, Y)
Return Cos(A) * D + SW/2
EndFunction
Function WToSY(X#, Y#)
X = (X - CameraX()) * cbeCameraZoom()
Y =-(Y - CameraY()) * cbeCameraZoom()
A# = GetAngle(0, 0, X, Y) - cbeCameraAngle()
D# = Distance(0, 0, X, Y)
Return -Sin(A) * D + SH/2
EndFunction
Näistä olisi sitten hyvä olla cb:n tyyliin "kakkosversiot", eli parametrinä objekti, vähentää kirjoittamista paljon.
Joo kyllä meillä on nämä vastaavat jo cbE:n sisällä toteutettuna esimerkiksi MouseWX/Y:tä varten. Pitäisi SItten vaan tehdä ne custom funktiot niistä.
Ehkä olisi parempi jos olisi cbeWToSX/Y ja sitten cbeObjectSX/Y.
Niinpä tietenkin teillä on ne siellä, enpä ajatellut tuota ;) Soveltuuko se transformaatiomatriisimatikka muuten tähän hommaan?
Niillä koordinaatiston ne muunnokset tehdäänkin. :)
Funktiot maailmakoordinaattien muuntamiseksi näyttökoordinaateiksi ja toisinpäin.