Go Down

Topic: modulo con valori float (Read 902 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