Zurück   Flashforum > Flash > ActionScript > Spielkonzepte und Spieleprogrammierung

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-12-2006, 01:57   #1 (permalink)
Meep!
 
Registriert seit: Sep 2005
Beiträge: 146
Rotation funzt nicht :/

ActionScript:
  1. public function getRotatedPoints():Array
  2.         {
  3.            
  4.             var tmp:Array = new Array();
  5.             for(var i = 0; i<pointCount; i++)
  6.             {
  7.                 var xdif = points[i][0] - center[0];
  8.                 var ydif = points[i][1] - center[1];
  9.                 var dist = Math.sqrt(xdif*xdif+ydif*ydif);
  10.                 var bm = (Math.PI/180)*currentRotation;
  11.                 tmp.push([center[0]+(Math.sin(bm)*dist), center[1]+(Math.cos(bm)*dist)]);
  12.             }
  13.             return tmp;
  14.            
  15.         }
damit möchte ich ein Polygon rotieren...komischweise sind aber alle werte in tmp gleich?!?

hat jmd ne idee wo der fehler liegt?
__________________
http://www.pixartist.de
pixartist ist offline   Mit Zitat antworten
Alt 10-12-2006, 10:03   #2 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Wenn du Flash 8 hast kannst du auch die Klasse Point nutzen.
Hoffe das ist richtig, bin auch nicht so das Mathe-Ass.

PHP-Code:
// ein poly
var points: Array = [];
points.push( [ 024 ] );
points.push( [ 126123 ] );
points.push( [ 13032 ] );
points.push( [ 024 ] );

var 
center: Array = [ 5050 ];

var 
currentRotationNumber 90;

_root.lineStyle1);
drawPolypoints );
_root.lineStyle10x335588 );
drawPolygetRotatedPoints() );



function 
drawPolypoly: Array ): Void
{
    
_root.moveTocenter[0] + poly[0][0], center[1] + poly[0][1] );
    
    for( var 
1points.lengthi++ )
    {
        
_root.lineTocenter[0] + poly[i][0], center[1] + poly[i][1] );
    }
}


function 
getRotatedPoints(): Array
{
    
    var 
tmp:Array = new Array();
    var 
pointCountNumber points.length;
    
    var 
bm = (Math.PI 180) * -currentRotation;
        
    var 
cosNumber Math.cosbm );
    var 
sinNumber Math.sinbm );
    
    for(var 
0i<pointCounti++)
    {
        var 
xdifNumber points[i][0] - center[0];
        var 
ydifNumber points[i][1] - center[1];
        
        var 
newXNumber center[0] + (xdif cos) + (ydif sin);
        var 
newYNumber center[1] - (xdif sin) + (ydif cos);
        
        
tmp.push( [ newX newY ] );
    }
    return 
tmp;
    

__________________
ERROR: Signature is too large

Geändert von rendner[i] (10-12-2006 um 10:19 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Alt 10-12-2006, 14:14   #3 (permalink)
Meep!
 
Registriert seit: Sep 2005
Beiträge: 146
danke...funzt
__________________
http://www.pixartist.de
pixartist 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 18:24 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele