Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-05-2004, 19:03   #1 (permalink)
Animateur
 
Benutzerbild von Master Wu
 
Registriert seit: Jan 2003
Ort: MZ
Beiträge: 1.536
mathe: punkt nach drehung berechnen

Problem:

Ich habe einen mc, auf dem ist ein bestimmter punkt, sagen wir: x50 und y70.
Der liegt in Bezug auf _root. z.b auf x100 und y120, dh. der mc selber liegt auf x50 und y50.
dann rotate ich den mc um z.b. 30 grad.
jetzt möchte ich wissen, auf welchen koordinaten in bezug auf _root der punkt jetzt liegt?

und zwar ausgerechnet

sicher ne einfache matheaufgabe, aber die schule is schon so lange her.
Bitte um Hilfe!
__________________
there is no way to happiness, happiness is the way - flashgames
Master Wu ist offline   Mit Zitat antworten
Alt 13-05-2004, 19:16   #2 (permalink)
Neuer User
 
Benutzerbild von PUCCAK
 
Registriert seit: Apr 2004
Beiträge: 229
Leider bin ich nicht zuhause, da hab ich was du brauchst.

Auf jeden gibts einen änlichen Beispiel mit einem Marienkäfer im Flash selber.
__________________
::: Individuell Design :::
::: Web- Grafikdesign :::
PUCCAK ist offline   Mit Zitat antworten
Alt 13-05-2004, 20:10   #3 (permalink)
Animateur
 
Benutzerbild von Master Wu
 
Registriert seit: Jan 2003
Ort: MZ
Beiträge: 1.536
Ansonsten kein Mathekönner da?
__________________
there is no way to happiness, happiness is the way - flashgames
Master Wu ist offline   Mit Zitat antworten
Alt 13-05-2004, 20:11   #4 (permalink)
Steffen G.
 
Benutzerbild von Tschdaeff
 
Registriert seit: Aug 2001
Ort: Ba-Wü
Beiträge: 4.123
edit... mom die antwort war gar nix

cu mfg
Tschdaeff
__________________
mod@
www.flashbattle.de
www.steffen-guse.de
------------------------------------

Tschdaeff ist offline   Mit Zitat antworten
Alt 13-05-2004, 20:15   #5 (permalink)
Steffen G.
 
Benutzerbild von Tschdaeff
 
Registriert seit: Aug 2001
Ort: Ba-Wü
Beiträge: 4.123
ActionScript:
  1. x = Math.cos (180/Math.PI*winkel)*anfang_xabstand
  2. y = Math.sin (180/Math.PI*winkel)*anfang_yabstand


vllt ist das was

cu mfg
Tschdaeff
__________________
mod@
www.flashbattle.de
www.steffen-guse.de
------------------------------------

Tschdaeff ist offline   Mit Zitat antworten
Alt 13-05-2004, 20:55   #6 (permalink)
Animateur
 
Benutzerbild von Master Wu
 
Registriert seit: Jan 2003
Ort: MZ
Beiträge: 1.536
also bei oben angegebenen Werten müsste ca. rauskommen:
x:55
y:135
da liegt der punkt nach den 30 grad drehung:

nach deiner Formel:
//x = Math.cos (180/Math.PI*winkel)*anfang_xabstand
//y = Math.sin (180/Math.PI*winkel)*anfang_yabstand
x = Math.cos (180/Math.PI*30)*100;
y = Math.sin (180/Math.PI*30)*120;

kommt aber das raus:
x:-91.2188068927298
Y:-49.1726158288969

Kann also nich stimmen, oder hab ich was falsch eingesetzt?
__________________
there is no way to happiness, happiness is the way - flashgames
Master Wu ist offline   Mit Zitat antworten
Alt 13-05-2004, 22:08   #7 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
na klar, so drehst du ja auch um den falschen Punkt.
Die Formel an sich ist aber schon richtig so...(nur die Umrechnung von Grad zu Bogenmaß war noch falschrum

ActionScript:
  1. x = Math.cos (Math.PI/180*winkel)*innererXWert+xAussen;
  2. y = Math.sin (Math.PI/180*winkel)*innererYWert+yAussen;

evtl. musst du allerdings noch ein - vor den Winkel setzen, da die Rotation von Flash ja im Uhrzeigersinn zeigt, der mathematische Drehsinn (und somit auch der von sin) aber im Gegenuhrzeigersinn läuft. (beginnend bei 3 Uhr).
Janoscharlipp ist offline   Mit Zitat antworten
Alt 13-05-2004, 23:57   #8 (permalink)
Animateur
 
Benutzerbild von Master Wu
 
Registriert seit: Jan 2003
Ort: MZ
Beiträge: 1.536
führt leider auch nicht zum gewünschten Ergebnis
__________________
there is no way to happiness, happiness is the way - flashgames
Master Wu ist offline   Mit Zitat antworten
Alt 14-05-2004, 00:12   #9 (permalink)
Neuer User
 
Registriert seit: Aug 2002
Beiträge: 17
aber falls du nicht zu sehr an deinem "ausgerechtet" hängst kannst du ja auch einfach an die punkte ein mc setzten und die position abfragen wäre auch denkbar (ja ist nicht ausgerechnet ich weiß aber manchmal ist einfach doch besser=)
theSign ist offline   Mit Zitat antworten
Alt 14-05-2004, 07:14   #10 (permalink)
Animateur
 
Benutzerbild von Master Wu
 
Registriert seit: Jan 2003
Ort: MZ
Beiträge: 1.536
ich hänge aber sehr an meinem "ausgerechnet"
__________________
there is no way to happiness, happiness is the way - flashgames
Master Wu ist offline   Mit Zitat antworten
Alt 14-05-2004, 12:35   #11 (permalink)
Steffen G.
 
Benutzerbild von Tschdaeff
 
Registriert seit: Aug 2001
Ort: Ba-Wü
Beiträge: 4.123
stell mal ne fla hier rein

cu mfg
Tschdaeff
__________________
mod@
www.flashbattle.de
www.steffen-guse.de
------------------------------------

Tschdaeff ist offline   Mit Zitat antworten
Alt 14-05-2004, 13:44   #12 (permalink)
Animateur
 
Benutzerbild von Master Wu
 
Registriert seit: Jan 2003
Ort: MZ
Beiträge: 1.536
kommt sofort!

zur Erklärung:
wenn man den blauen kasten klickt, dreht er sich um 30 grad.
die neue Position des kleinen schwarzen Punktes (in bezug auf _root) soll berechnet werden.
Angehängte Dateien
Dateityp: zip dreh_test.zip (6,8 KB, 7x aufgerufen)
__________________
there is no way to happiness, happiness is the way - flashgames
Master Wu ist offline   Mit Zitat antworten
Alt 14-05-2004, 15:01   #13 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
peinlich, peinlich...

der Radius fehlte natürlich, man muss den Radius mit dem sin/cos multiplizieren.

Zudem fiel mir nichts anderes ein, als erstmal den Startwinkel zu berechnen, damit bin ich aber nicht so glücklich.

Du darfst aber auch nicht einfach alles durcheinander würfeln, du hattest z.B. cos ( für x) und sin (für y) vertauscht.

hier ein funktionelles Script:

ActionScript:
  1. var startX = 50;
  2. var startY = 70;
  3.    
  4. var winkel = 30;
  5.    
  6. this._rotation = winkel;
  7.    
  8. var alphaStart = Math.atan2(startY, startX);
  9.    
  10. var rad = Math.sqrt(startX * startX + startY * startY);
  11.    
  12. var xEnd = rad * Math.cos(alphaStart + Math.PI/180*winkel)+50;
  13. var yEnd = rad * Math.sin(alphaStart + Math.PI/180*winkel)+50;
Janoscharlipp ist offline   Mit Zitat antworten
Alt 14-05-2004, 15:17   #14 (permalink)
Animateur
 
Benutzerbild von Master Wu
 
Registriert seit: Jan 2003
Ort: MZ
Beiträge: 1.536
ei, so gehts!
danke!
__________________
there is no way to happiness, happiness is the way - flashgames
Master Wu ist offline   Mit Zitat antworten
Alt 14-05-2004, 16:42   #15 (permalink)
Animateur
 
Benutzerbild von Master Wu
 
Registriert seit: Jan 2003
Ort: MZ
Beiträge: 1.536
So, wollte, dass sich der mc um den punkt dreht, auf den man klickt.
Funktioniert auch, aber nur beim 1. Klick, sprich, wenn die _rotation == 0;

Jemand ne Idee, wie das auch bei anderen _rotations funktionieren könnte?

ActionScript:
  1. this.onPress = function() {
  2.    
  3.     var xMouse = this._xmouse;
  4.     var yMouse = this._ymouse;
  5.     var winkel = 55;
  6.    
  7.     var alphaStart = Math.atan2(yMouse, xMouse);
  8.     this._rotation += winkel;
  9.     trace("alphaStart="+alphaStart);
  10.     var rad = Math.sqrt(xMouse * xMouse + yMouse * yMouse);
  11.     var xEnd = rad * Math.cos(alphaStart + Math.PI/180*this._rotation)+this._x;
  12.     var yEnd = rad * Math.sin(alphaStart + Math.PI/180*this._rotation)+this._y;
  13.    
  14.     xOffset = xMouse - xEnd +this._x;
  15.     yOffset = yMouse - yEnd + this._y;
  16.     this._x += xOffset;
  17.     this._y += yOffset;
  18.  
  19.     trace(xEnd+"/"+yEnd);
  20.     trace(xOffset+"/"+yOffset);
  21. };
__________________
there is no way to happiness, happiness is the way - flashgames
Master Wu ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 19:52 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele