Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 38
  1. #1

    Angolo rotazione senza valori negativi

    Ciao a tutti!
    come posso ricavare l' angolo di rotazione di un clip seza i valori negativi??
    this._rotation ottengo i gradi di rotazione ma quando sono a 90° antiorario ottengo -270
    io invece vorrei che la mia variabile rotazione=:
    nella posizione iniziale mi restituisca rotazione=0
    a 90° in senso antioriaio mi restituisca rotazione=90
    a 180° antiorario rotazione=180
    a 270° antioriao rotazione=270
    e a 360° antiorario rotazione=360


    Spero di essermi spigato.. in sostanza qualuno sa la formula matematica che posso usare??
    Designer ci si i(n)venta...
    www.3dtre.com

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    beh sì basta sottrarre a 360 il valore attuale di _rotation

  3. #3
    non è così semplice...
    ti posto il codice..

    Codice PHP:
    var angolo:Number;
    var 
    temp:Number 0;
    circle_mc.onPress = function() {
        
    circle_mc.onMouseMove = function() {
            
    angolo Math.atan2(_ymouse-this._y_xmouse-this._x);
            if (
    temp == 0) {
                
    temp = -this._rotation+(angolo*(180/Math.PI));
            }
            
    this._rotation = (angolo*(180/Math.PI))-temp;
            
    trace("rotazione:"+(360-(this._rotation)));
        };
    };
    circle_mc.onMouseUp = function() {
        if (
    this.onMouseMove) {
            
    temp 0;
            
    delete this.onMouseMove;
        }
    }; 
    con il trace provo a ricavarmi l' angolo che poi userò dopo ma non vengono i valori giusti..

    Quello che voglio fare è una clip che se premuta ruota a seconda della posizione del mouse..
    funziona tutto ma non riesco a ricavarmi i valori di rotazione "giusti"
    Designer ci si i(n)venta...
    www.3dtre.com

  4. #4
    ho risolto così...
    non sò se c'è un metodo migliore!!




    Codice PHP:
    stop();

    var 
    angolo:Number;
    var 
    temp:Number 0;
    circle_mc.onPress = function() {
        
    circle_mc.onMouseMove = function() {
            
    angolo Math.atan2(_ymouse-this._y_xmouse-this._x);
            if (
    temp == 0) {
                
    temp = -this._rotation+(angolo*(180/Math.PI));
            }
            
    this._rotation = (angolo*(180/Math.PI)-temp);
            
    rotazione Math.round(0-this._rotation);
            if (
    rotazione<0) {
                
    trace("rotazione:"+(360+rotazione));
            } else {
                
    trace("rotazione:"+rotazione);
            }
        };
    };
    circle_mc.onMouseUp = function() {
        if (
    this.onMouseMove) {
            
    temp 0;
            
    delete this.onMouseMove;
        }
    }; 
    Designer ci si i(n)venta...
    www.3dtre.com

  5. #5
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    siccome i valori sono negativi, di questa operazione:

    trace("rotazione:"+(360-(this._rotation)));

    devi fare la somma e non la sottrazione

    trace("rotazione:"+(360+this._rotation));

    ad esempio per -270 sarebbe uguale a:

    360 + (-270) = 90

  6. #6
    Originariamente inviato da and80
    siccome i valori sono negativi, di questa operazione:

    trace("rotazione:"+(360-(this._rotation)));

    devi fare la somma e non la sottrazione

    trace("rotazione:"+(360+this._rotation));

    ad esempio per -270 sarebbe uguale a:

    360 + (-270) = 90
    sì l' avevo fatto.. ho incollato male..!!


    questo codice mi serve per far interagire gli utenti con una "Manopola"
    ora dovrei mettere dei vincoli ...
    tipo che quado sono a 0° posso andare a 90° in senso antiorario,
    ma non andare in senso orario da 0°
    Designer ci si i(n)venta...
    www.3dtre.com

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    immaginavo che ti servisse per una manopola
    in pratica deve poter fare un solo giro che sia in senso orario o antiorario, no?! potresti provare a dare come limiti lo 0 e il 359 al di sopra o al di sotto dei quali il "mouseMove" non deve avere effetto

    [edit] mmh, no, non si può fare così... non ci avevo mai badato ma la rotazione assume valori che vanno da -180 a 0 a 180 e ogni valore in più o in meno viene sommato ottenendo un angolo comunque sempre valido al fine della rotazione

  8. #8
    Originariamente inviato da and80
    immaginavo che ti servisse per una manopola
    in pratica deve poter fare un solo giro che sia in senso orario o antiorario, no?! potresti provare a dare come limiti lo 0 e il 359 al di sopra o al di sotto dei quali il "mouseMove" non deve avere effetto

    [edit] mmh, no, non si può fare così... non ci avevo mai badato ma la rotazione assume valori che vanno da -180 a 0 a 180 e ogni valore in più o in meno viene sommato ottenendo un angolo comunque sempre valido al fine della rotazione
    già ! è quello il problema principale!!
    Designer ci si i(n)venta...
    www.3dtre.com

  9. #9
    help!!
    che formula matematica devo usare per avere degli angoli giusti???!!!!!!
    Designer ci si i(n)venta...
    www.3dtre.com

  10. #10
    Parzialmente sono riuscito a dare dei limiti ma non sò perchè non li rispetta completamente...
    and esempio voglio ruotare la manopola solo in senso anti-orario quindi solo se l' angolo è maggiore di 0°.
    MA quando traccio la variabile dell' angolo invece di fermarsi a 90° va ancora 2 o 3 gradi avanti
    a 93° poi si blocca perchè improvvisamente ricorda che non puo' superare i 90...

    perchè lo fa???? perchè è un basssstardo??? dove sbaglio???

    Codice PHP:
    //////////// rotazione
        
    circle_mc.onMouseMove = function() {
            
    angolo Math.atan2(_ymouse-this._y_xmouse-this._x);
            if (
    temp == 0) {
                
    temp = -this._rotation+(angolo*(180/Math.PI));
            }
            
    rotazione Math.round(0-this._rotation);
            
    // ricavo l' angolo in positivo da 0 a 360°
            
    if (rotazione<0) {
                
    angolo_positivo 360+rotazione;

            } else {
                
    angolo_positivo rotazione;
            }
            
    trace("angolo positivo:"+angolo_positivo);
            
    trace("rotazione:"+rotazione);

            if (
    angolo_positivo>&& angolo_positivo<90) {
                
    rotazione_mc = (angolo*(180/Math.PI)-temp);
                
    circle_mc._rotation rotazione_mc;
                
    fuoco();
            }
        };
        
    //////////////// Rotazione fine 
    VVoVe: VVoVe: VVoVe:
    Designer ci si i(n)venta...
    www.3dtre.com

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.