Forum
Stranded II Scripts Scripting - Fragen/ProblemeKann man in Scripts "geteilt durch" und "mal" rechnen? Wenn ja wie. Is sehr wichtig.
edited 1×, last 10.11.06 02:36:20 pm
hm, ok funzt. er kann aber nicht mit Kommazahlen rechnen. Ja ich weis das man da nen Punkt als Komma nimmt.
DC müsste also noch einbringen dass man Floatvariablen einsetzen kann. Ist auch für sin etc. vonnöten.
edited 1×, last 11.11.06 04:37:09 pm
Nächstes.
Ein Koordinatensystem, zur einfachheit mal 2d (werd auch nur x und z brauchen)
Man hat einen Punkt A auf zB 5|7
Nach oben ist 0°
Man hat einen Winkel von 56°
Man hat eine Entfernung von 6
Von Punkt A ausgehend, gibt es da eine möglichkeit die Koordinaten des neuen Punktes zu berechnen?
Das sind doch die Trigonometrischen Formeln?
Kann mir bitte mal jemand die Formell erklären wenn es denn geht?
Aber ich werds dir trotzdem mal erklären, sollte es mal funzen:
Hier mal die Formeln für die Koordinaten des gesuchten Punkts, entsprechend deiner Situation.
x=5+6*cos(90-56)
y=7+6*sin(90-56)
Wenn du mehr Infos brauchst, schau mal auf der Robsite, da werden einige Tuts aufgelistet. Ansonsten kannst du auch hier nachfragen wenn du was nicht verstehst.
Eine Erklärung zu schreiben wäre etwas zu langwierig, deswegen der Verweis auf ein Tut.
Edit@DC: Dass es um die trigonometrischen Funktionen geht hat er ja offensichtlich so schon begriffen.
Edit²: Ich sehe grade dass die trig. Funktionen doch noch richtig funktionieren inzwischen, sie geben jetzt den 100fachen Wert zurück. Das heißt, du musst die Klausel mit dem 6*sin/cos(56) hinterher nur durch 100 teilen, dann hast du ungefähre Koordinatenwerte.
edited 1×, last 10.11.06 03:39:01 pm
woher haste denn in der rechnung die 90? 90° oder?
gehört um das
5+6
und
7+6
jeweils ne Klammer?
edited 1×, last 10.11.06 03:41:09 pm
Alternativ müsste es auch funzen wenn man die Funktionen einfach umtauscht, d.h. sin für X-Wert und cos für Y-Wert.
Edit: Wenn ich meinte dass da Klammern hingehören hätte ich welche hingemacht...
Nein, Klammern gehören da nicht hin und sind falsch, die werden bloß überhöhte Ergebnisse liefern.
Das mit dem 5+ und dem 7+ kommt daher, dass man ja eigentlich von einem bestimmten Punkt ausgeht und somit die errechneten Sinus/Cosinuswerte zu den alten Koordinaten hinzuzählen muss.
kommazahlenbehelf
Guestcos(0.3) ist bei mir zB 0.995. (weis nicht ob ihr den Winkel in grad oder rad angeben muesst)
wenn ich das in einer ganzzahligen variable speichern will, also
x=cos(0.3)
kommt raus:
x=0 (bei mir zumindest, vielleicht rundet bb auch auf)
um das problem zu umgehen:
x=1000*cos(0.3)
fuehrt zu:
x=995
da habt ihr eure kommastellen, zumindest 3 davon als naeherung. wenn ihr mehr haben wollt, dann multipliziert nicht mit 1000 sondern 10000 oder hunderttausend. Die grenze hier nach oben ist dann nur wieviele stellen bb platz hat fuer eine ganze zahlen. sind normalerweise 8 oder 16 stellen, oder eine weniger fuers vorzeichen.
wenn ihr die zahl jetzt wieder benutzen wollt, dann schreibt einfach in jede rechnung, wo sie vorkommt anstatt x einfach x/1000 oder 10000 oder was es auch immer ist. das funktioniert deswegen, weil die nachkommastellen in der rechnung nicht verloren gehen, erst beim in eine variable schreiben.
ich hoff das hilft. bei anderen programmiersprachen gehts jedenfalls.
elmio
noch etwas was ich nich kappiere, Fehler: Missmatched Brackets:
1
$var=sin(getyaw("unit",1));
edited 1×, last 10.11.06 03:59:33 pm
Edit@Lizard: Versuch mal den getyaw Wert erst in einer Variablen zu speichern und diese dann dem Sinus zu übergeben.
Ist wohl ein Parserbug.
Und der Doppelpost wäre btw nicht nötig gewesen...
an der Stelle mit msg
1
2
3
4
5
2
3
4
5
on:use { $yaw=getyaw("unit",1); $var=(sin($yaw)); msg "$var"; }
kann es sein das S2 einen Fehler beim Runden macht, sprich wenn er 4,2364 in eine Variable packen soll, er nich 4 sondern 0 speichert?
edited 1×, last 10.11.06 04:08:08 pm
Flying Lizard has written
an der Stelle mit msg
Das sagt mir ja viel, vor allem wenn ich dein Script nicht habe...
Auf jeden Fall wäre mir ein solcher "Rundungsfehler" alles andere als geläufig und da müsste DC schon einiges verwurstelt haben, damit sowas rauskommt.
Anders gesagt, es ist sehr unwahrscheinlich dass es so ist wie du sagtest.
Zeig am besten mal dein Script her.