hilfdirselbst.ch
Facebook Twitter gamper-media
Willem
Beiträge: 98
16. Aug 2003, 00:45
Beitrag #1 von 11
Bewertung:
(3267 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Diagonale+Winkel von 2 Sprites abfragen


hallo,
nun habe ich schon 2 Handbücher durchforstet, aber nichts gefunden.
Ich möchte die Diagonale und den Winkel zwischen 2 Sprites abfragen.

Beispiel:
Mittelpunkt von Sprite 1 = 20,34
Mittelpunkt von Sprite 2 = 45,68

vielen Dank
willem Top
 
X
donkey shot
Beiträge: 1416
16. Aug 2003, 05:13
Beitrag #2 von 11
Beitrag ID: #47526
Bewertung:
(3262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Diagonale+Winkel von 2 Sprites abfragen


Äh.. Wozu brauchst Du das denn eigentlich? Klingt, als würde der Pythagoras oder sowas helfen. Allerdings habe ich sowas bislang nie gebraucht.

Eigentlich kommt man mit locV und locH immer ganz gut aus..

Und die Werte, die Du da angibst... Was ist das ? Director rechnet eigentlich immer in Pixeln. Wie kommt da ein Wert wie 20,34 zustande?

Also, wenn Du genauer erklärst, was Du willst, kann ich Dir vielleicht helfen...

grüsse,

Christof
als Antwort auf: [#47521] Top
 
donkey shot
Beiträge: 1416
16. Aug 2003, 05:31
Beitrag #3 von 11
Beitrag ID: #47527
Bewertung:
(3262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Diagonale+Winkel von 2 Sprites abfragen


Ups... da hatte ich wohl gerade ein Brett vorm Kopf - zu dieser fortgeschrittenen Stunde wohl kein Wunder. x=20, y = 34. Nu ists klar...

Allerdings rechnet man in Director eigentlich nie mit dem Mittelpunkt, sondern meistens mit locV und locH, wie gesagt...

Also stellt sich immer noch die Frage, was willst Du? ... und kann man vielleicht besser / einfacher zu einem Ergebnis kommen, ohne Winkel oder Strecken zu berechnen?

grüsse,

Christof
als Antwort auf: [#47521] Top
 
Willem
Beiträge: 98
16. Aug 2003, 09:29
Beitrag #4 von 11
Beitrag ID: #47534
Bewertung:
(3262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Diagonale+Winkel von 2 Sprites abfragen


Hallo Christof,
ich möchte die Diagonale (Strecke) zwischen zwei Mausklicks abfragen
und dessen Winkel.

Diagonale:
z.B. point 0,0 zu point 40,60
der horiz. Abstand =40, der vert. Abstand = 60
welche Länge hat die Diagonale

Winkel:
z.B. point 0,0 zu point 0,60
der Winkel = 0 Grad

oder anders formuliert:
ich fliege von Punkt A nach Punkt B, wie lang ist die Strecke?
und in welchem Winkel zu Nord/Süd fliegen wir

Gruss willem

als Antwort auf: [#47521] Top
 
donkey shot
Beiträge: 1416
18. Aug 2003, 17:05
Beitrag #5 von 11
Beitrag ID: #47706
Bewertung:
(3262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Diagonale+Winkel von 2 Sprites abfragen


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)
Top
 
Willem
Beiträge: 98
21. Aug 2003, 13:57
Beitrag #6 von 11
Beitrag ID: #48156
Bewertung:
(3262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Diagonale+Winkel von 2 Sprites abfragen


Hallo Christof,

das finde ich echt super,
so habe ich schon mal die Groesse.
(den "Satz des Pythagoras" hab ich schon mal gehört, aber..?.)
mit der Winkelberechnung will ich eigentlich den Unterschied
zwischen der 1. und 2. Diagonalen herausfinden.

vielen Dank
Gruss willem
als Antwort auf: [#47521] Top
 
donkey shot
Beiträge: 1416
21. Aug 2003, 14:15
Beitrag #7 von 11
Beitrag ID: #48161
Bewertung:
(3262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Diagonale+Winkel von 2 Sprites abfragen


Am Winkel arbeite ich noch. Das geht mit dem Sinussatz: Gegenkathethe durch Hyputhenuse ist gleich Sinus des Winkels. Oder Cosinussatz: Ankathethe durch Hyputhenuse ist Cosinus des Winkels.

Habe nur vergessen, wie man den Sinus in Grad umrechnet. Da muß ich nochmal wen fragen, der was davon versteht.

grüsse,

Christof
als Antwort auf: [#47521] Top
 
donkey shot
Beiträge: 1416
25. Aug 2003, 03:36
Beitrag #8 von 11
Beitrag ID: #48450
Bewertung:
(3262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Diagonale+Winkel von 2 Sprites abfragen


So, nun habe ich auch die Winkelberechnung eingebaut. Das Problem dabei war, daß Director keinen Arcussinus berechnet und ich ein bißchen gebraucht habe, darauf zu kommen, daß man auch den Tangenssatz (tangens alpha = Gegenkathete / Ankathete) verwenden kann. Zum Glück hatte ich tatkräftige mathematische Hilfe. Außerdem muß man noch das Bogenmaß mit x * 180/PI in Grad umrechnen.

Die Winkelangaben beziehen sich jetzt, wie das mathemathisch üblich ist auf eine horizontale Achse, 0 Grad läge da bei 3 Uhr.

Da kann man natürlich auch ändern. Hier nun das Skript (am Ende etwas ausführlicher kommentiert):

global cntNmb
global aLocH, aLocV, blocH, blocV, aKath, bKath, cHyp, aAng

on startMovie
cntNmb = 1
the floatPrecision = 5
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:" && integer(cHyp)

-- Berechnung des Winkels

-- Abfrage der Sonderfälle (Rechte Winkel)

if aKath = 0 then
if aLocH < bLocH then
aAng = 0.0
else
aAng = 180.0
end if
else
if bKath = 0 then
if aLocV < bLocV then
aAng = 270.0
else
aAng = 90.0
end if
else

the floatPrecision = 5

-- tangens Alpha = Gegenkathete durch Ankathete
-- Umrechnung von Bogenmaß in Grad

aAng = atan(float(float(bKath)/float(aKath))) * 180/PI

end if
end if

-- Inbezugsetzung zu horizontaler Achse (3 Uhr = 0 Grad)

if aLocH < bLocH then
if alocV < blocV then
aAng = 90 - aAng
else
aAng = 270 + aAng
end if
else
if alocV < blocV then
aAng = aAng + 90
else
aAng = 270 - aAng
end if
end if

-- Ausgabe des Winkels

the floatPrecision = 1
put "Winkel:" && aAng

cntNmb = 1

end if

end mouseUp

grüsse,

Christof
als Antwort auf: [#47521] Top
 
Willem
Beiträge: 98
25. Aug 2003, 21:25
Beitrag #9 von 11
Beitrag ID: #48568
Bewertung:
(3262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Diagonale+Winkel von 2 Sprites abfragen


Hallo Christof,

da wär ich nie hingekommen, aber mit Deiner Hilfe und längeres probieren/überlegen
habe ich es in mein Projektor eingebaut - und es funktioniert...

Jetzt muss ich es nur noch hinbekommen, eine externe Datei (Screenshot) in die Besetzung zu hieven, dann hätte ich eine 2Punkt-Kennung für InDesign.

nochmals Danke und Gruss
willem
als Antwort auf: [#47521] Top
 
Willem
Beiträge: 98
25. Aug 2003, 23:28
Beitrag #10 von 11
Beitrag ID: #48586
Bewertung:
(3262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Diagonale+Winkel von 2 Sprites abfragen


habe gerade mit:
ImportFileInto member (4), " HD:bildordner:bild 1"
versucht ein vorher abgelegten Screenshot (Bild 1) zu importieren,
aber erfolglos...
willem
als Antwort auf: [#47521] Top
 
Willem
Beiträge: 98
25. Aug 2003, 23:38
Beitrag #11 von 11
Beitrag ID: #48587
Bewertung:
(3262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Diagonale+Winkel von 2 Sprites abfragen


hat nach Änderung (HD anstatt Startup disk) nun doch funktioniert.
willem
als Antwort auf: [#47521] Top
 
X