Pages: [1]   Go Down
Author Topic: modulo con valori float  (Read 857 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Shannon Member
****
Karma: 131
Posts: 10473
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Naples (IT)
Offline Offline
God Member
*****
Karma: 6
Posts: 714
Andrea E.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

non ho capito che devi fare, cosa intendi per normalizzare?
Logged

Arduino, MODs e DIY: blackstufflabs.com

Naples (IT)
Offline Offline
God Member
*****
Karma: 6
Posts: 714
Andrea E.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

scusa ma....


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

Arduino, MODs e DIY: blackstufflabs.com

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22811
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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


0
Offline Offline
Shannon Member
****
Karma: 131
Posts: 10473
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Naples (IT)
Offline Offline
God Member
*****
Karma: 6
Posts: 714
Andrea E.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

?? che c'entra il modulo?

modulo (%) ovvero il resto della divisione.... viene chiamato anche modulo in programmazione...
in matematica il modulo è abs()... vabè...
Logged

Arduino, MODs e DIY: blackstufflabs.com

0
Offline Offline
Shannon Member
****
Karma: 131
Posts: 10473
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

eh ma il modulo (http://arduino.cc/en/Reference/Modulo) funziona solo con gli interi, se no non aprivo la discussione smiley
Quote
The modulo operator does not work on floats.
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Naples (IT)
Offline Offline
God Member
*****
Karma: 6
Posts: 714
Andrea E.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ah scusa, pensavo che intero=positivo. sto fuso, pardon!
la tua versione è ok... anche perchè matematicamente è la soluzione migliore...
« Last Edit: February 01, 2011, 06:48:13 pm by skaxxo » Logged

Arduino, MODs e DIY: blackstufflabs.com

Pages: [1]   Go Up
Jump to: