Go Down

Topic: modulo con valori float (Read 971 times) previous topic - next topic

lesto

ciao a tutti
devo normalizzare dei valori float tra i valori -3.14 e 3.14
normalmente si fa:
norma = x%3.14;

peccato che in arduino % funziona solo con gli interi.

le 2 soluzioni che vedo per ora sono:
1:
while ( abs(x) > 3.14 ){
  x/=3.14;
}
2:
long v = x*100000;//si perde di precisione ma chissene
x= (v%314000)/100000;

altre soluzioni? cerco qualcosa di particolarmente veloce
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

AnTrea

non ho capito che devi fare, cosa intendi per normalizzare?
Arduino, MODs e DIY: blackstufflabs.com

AnTrea

scusa ma....


if x>0
  fai il modulo
else
moltipchi x per -1
fai il modulo
Arduino, MODs e DIY: blackstufflabs.com

leo72

Intende dire riportare il valore all'interno di un intervallo. Nel suo caso, l'intervallo è -3,14 / +3,14.

lesto


Intende dire riportare il valore all'interno di un intervallo. Nel suo caso, l'intervallo è -3,14 / +3,14.


esatto, in particolare stiamo parlando di rotazioni in radianti dove 2PI è l'angolo giro


if x>0
  fai il modulo
else
moltipchi x per -1
fai il modulo


?? che c'entra il modulo?
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

AnTrea


?? che c'entra il modulo?


modulo (%) ovvero il resto della divisione.... viene chiamato anche modulo in programmazione...
in matematica il modulo è abs()... vabè...
Arduino, MODs e DIY: blackstufflabs.com

lesto

eh ma il modulo (http://arduino.cc/en/Reference/Modulo) funziona solo con gli interi, se no non aprivo la discussione :)
Quote
The modulo operator does not work on floats.
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

AnTrea

#7
Feb 02, 2011, 12:46 am Last Edit: Feb 02, 2011, 12:48 am by skaxxo Reason: 1
ah scusa, pensavo che intero=positivo. sto fuso, pardon!
la tua versione è ok... anche perchè matematicamente è la soluzione migliore...
Arduino, MODs e DIY: blackstufflabs.com

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy