Mit dem Pythagoras haut das hin. Du schreibst in Deine Datei folgendes Filmskript:
global cntNmb
global aLocH, aLocV, blocH, blocV, aKath, bKath, cHyp
on startMovie
cntNmb = 1
the floatPrecision = 1
end startMovie
on mouseUp
if cntNmb = 1 then
aLocH = the mouseH
aLocV = the mouseV
cntNmb = 2
put "Nochmal klicken!"
else
bLocH = the mouseH
bLocV = the mouseV
-- Länge der ersten Kathethe
if aLocV < blocV then
aKath = bLocV - aLocV
else
aKath = aLocV - bLocV
end if
-- Länge der zweiten Kathethe
if aLocH < blocH then
bKath = bLocH - aLocH
else
bKath = aLocH - bLocH
end if
-- Berechnung der Hypothenuse
cHyp = sqrt(power(aKath,2) + power(bKath,2))
put "Diagonale:"
put float(cHyp)
cntNmb = 1
end if
end mouseUp
Wenn Du nun das Nachrichtenfenster öffnest (STRG + M oder Apfel + M), kannst du das Ergebnis sehen, wenn Du den Film abspielst und zweimal auf die Bühne klickst. In der dritten Zeile (floatPrecision) ist angegeben, auf wieviel Stellen das Ergebnis gerundet werden soll. Wenn Du eine ganze Zahl haben willst (ist ja bei der Einheit Pixel angemessen), mußt Du statt der Zeile "put float(cHyp)" schreiben "put integer(cHyp)".
Wenn Du das Ergebnis in ein Textfeld geschrieben haben willst, kannst Du "put float(cHyp) into the member of sprite(x)" schreiben. Statt x bitte den Spritekanal angeben.
Das mit dem Winkel muß ich noch rausfinden, das läßt sich aber ja im Skript noch ergänzen. Erstmal brauche ich jemanden, der gut in Mathe ist und die Formel kennt. Ich habe die vergessen. Bei meiner chronischen Fünf in Mathe früher wohl kein Wunder. Ich weiß nur noch, daß die Summe der Winkel im Dreieck 180 Grad ist.
Dann muß man auch noch beachten, daß der errechnete Winkel immer noch entweder von 360, 90, 180 und 270 Grad abgezogen werden muss...
Das Skript kann man natürlich noch nach Bedarf anpassen.
grüsse,
Christof
als Antwort auf: [#47521]
(Dieser Beitrag wurde von donkey shot am 18. Aug 2003, 17:07 geändert)