[ascoders] AW: Re: AW: Re: Rotation nach Mausposition *gedämpft*

  • From: Timo Hölzer <t.hoelzer@xxxxxxxxx>
  • To: <ascoders@xxxxxxxxxxxxx>
  • Date: Thu, 14 Oct 2004 09:14:52 +0200

Hallo

Ersmal Danke euch beiden!

@mario
Funktioniert...allerdings nur , wenn man den Clip um Uhrzeigersinn bewegt.
Gegen den Uhrzeigersinn zuckt das Ganze zwischen 11 und 12 Uhr
unkontrolliert.


@andré
Die Mühe, die Du dir mit der .fla gemacht hast konnte ich leider noch nicht
begutachten :(
kein MX 2004 zur Verfügung.

ich könnte Dir die .fla auch mal schicken, damit Du weist worum es geht.


Das erste Script auf AS 1 läuft auch nicht ganz rund
(der Clip liegt in der Mitte der Stage)


----------------------------------------------------------------
this.onEnterFrame = function()
{
 var cAngle = Math.atan2(this._ymouse, this._xmouse );

 var diff = cAngle - this.angle;

 if( diff > Math.PI ) diff -= Math.PI * 2;
 if( diff <-Math.PI ) diff += Math.PI * 2;

 //-- EASING
 this.angle += diff / 8;

 //-- DRAW ANGLE
 this.clear();
 this.lineStyle( 0 , 0xffcc00 );
 this.lineTo( Math.cos( angle ) * 100, Math.sin( angle ) * 100 );
}
----------------------------------------------------------------


_rotation liefert ja Werte von (+ -) 0 bis 180

wenn ich mit einer neuen Eigenschaft "_angle" _rotation in Werte von 0-360
wandle funktioniert das easing bis ich wieder bei der Schwelle 0 und 360
angekommen bin. Egal welches Easing, es handelt sich ja dabei immer um
die Annäherung an einen Wert. Der Sprung von 0 zu 360 kann damit ja nicht
so einfach verarbeitet werden.

wenn mann die Vollrotationen Rotation zählen würde
(numRotations++/nunRotations--)
sollte sich das Problem durch die Umwandlung von _rotation in Richtung
Uhrzeigersinn lösen. Allerdings bleibt dann die Barriere numRotations = 0
Schwelle 0 und 360.

Bin etwas hilflos im Moment
----------------------------------------------------------------
MovieClip.prototype.getAngle = function(){
        var a = this._rotation
        if(a < 0) a += 360
        return a
}

MovieClip.prototype.setAngle = function(value){
        this._rotation = value
}

MovieClip.prototype.addProperty("_angle",MovieClip.prototype.getAngle,MovieC
lip.prototype.setAngle)
----------------------------------------------------------------

Timo H.



-----Ursprüngliche Nachricht-----
Von: ascoders-bounce@xxxxxxxxxxxxx
[mailto:ascoders-bounce@xxxxxxxxxxxxx]Im Auftrag von Mario Klingemann
Gesendet: Mittwoch, 13. Oktober 2004 23:02
An: ascoders@xxxxxxxxxxxxx
Betreff: [ascoders] Re: AW: Re: Rotation nach Mausposition *gedämpft*


Wie wäre es so:

this.pointer.onEnterFrame=function() {
 var r=Math.atan2(this._parent._ymouse-this._y,
this._parent._xmouse-this._x)/Math.PI*180;
 if ((r+360)-this._rotation < Math.abs(r-this._rotation)) r+=360;
 this._rotation = 0.8*this._rotation+0.2*r
}

Gruß Mario

----- Original Message -----
From: "Timo Hölzer" <t.hoelzer@xxxxxxxxx>
To: <ascoders@xxxxxxxxxxxxx>
Sent: Wednesday, October 13, 2004 10:40 PM
Subject: [ascoders] AW: Re: Rotation nach Mausposition *gedämpft*


> Hi André
>
> Danke erstmal für Deien Hilfe...
>
> So soll's sein, allerdings ohne den Fehler auf 9 Uhr
> ---------------------------------------------------------------
> onClipEvent(enterFrame) {
> this.r  = Math.atan2(this._parent._ymouse-this._y,
> this._parent._xmouse-this._x)/Math.PI*180;
>
> this.rpos = (this.rpos*0.8)+((this.r-this._rotation)*0.2);
>
> this._rotation += this.rpos
>
> }
> ---------------------------------------------------------------
>
>
> Mit deinem Code zuckt der Clip nur vor sich hin
> ---------------------------------------------------------------
> onClipEvent(enterFrame) {
> this.r  = Math.atan2(this._parent._ymouse-this._y,
> this._parent._xmouse-this._x)/Math.PI*180;
>
> this.rpos = (this.rpos*0.6)+((this.r-this._rotation)*0.2);
>
> while( this.rpos > Math.PI ) this.rpos -= Math.PI*2;
> while( this.rpos <-Math.PI ) this.rpos += Math.PI*2;
>
> this._rotation += this.rpos
>
> }
> ---------------------------------------------------------------
>
> Ich hab schon ziemlich viel probiert, aber ich komm
> irgendwie nicht dahinter :(
>
> Timo
>
>
> -----Ursprüngliche Nachricht-----
> Von: ascoders-bounce@xxxxxxxxxxxxx
> [mailto:ascoders-bounce@xxxxxxxxxxxxx]Im Auftrag von André Michelle
> Gesendet: Mittwoch, 13. Oktober 2004 21:36
> An: ascoders@xxxxxxxxxxxxx
> Betreff: [ascoders] Re: Rotation nach Mausposition *gedämpft*
>
>
> probier mal:
>
> this.rpos = (this.rpos*0.6)+((r-this._rotation)*0.2);
> while( this.rpos > Math.PI ) this.rpos -= Math.PI*2;
> while( this.rpos <-Math.PI ) this.rpos += Math.PI*2;
> this._rotation += this.rpos
>
> --
> aM
>
> ------------------------------------------------------
> Archiv   : //www.freelists.org/archives/ascoders/
> Optionen : //www.freelists.org/list/ascoders
> ------------------------------------------------------
>
> ------------------------------------------------------
> Archiv   : //www.freelists.org/archives/ascoders/
> Optionen : //www.freelists.org/list/ascoders
> ------------------------------------------------------
>

------------------------------------------------------
Archiv   : //www.freelists.org/archives/ascoders/
Optionen : //www.freelists.org/list/ascoders
------------------------------------------------------

------------------------------------------------------
Archiv   : //www.freelists.org/archives/ascoders/
Optionen : //www.freelists.org/list/ascoders
------------------------------------------------------

Other related posts: