Pages: [1]   Go Down
Author Topic: modulo con valori float  (Read 720 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10105
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
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

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Naples (IT)
Offline Offline
God Member
*****
Karma: 5
Posts: 712
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: 5
Posts: 712
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: 313
Posts: 21619
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: 117
Posts: 10105
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
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

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Naples (IT)
Offline Offline
God Member
*****
Karma: 5
Posts: 712
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: 117
Posts: 10105
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
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

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Naples (IT)
Offline Offline
God Member
*****
Karma: 5
Posts: 712
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: