Akcelerometr kup mi 0000 veškerý čas

hlasů
1

Mám 0 0 0 0 0 0 0 0 0 0 0 0

 - (void)applicationDidFinishLaunching:(UIApplication *)application {resultValues.text = @;
[[UIAccelerometer sharedAccelerometer] setUpdateInterval: 1.0 / kUpdateFrequency];
[[UIAccelerometer sharedAccelerometer] setDelegate:self];
 }
  - (void)accelerometer:(UIAccelerometer*)accelerometer      didAccelerate:(UIAcceleration*)acceleration 
 {
x = acceleration.x;
y = acceleration.y;
z = acceleration.z;
printf(\n%d, x);
printf(\n%d, y);
printf(\n%d, z);

}

Položena 01/09/2010 v 01:37
zdroj uživatelem
V jiných jazycích...                            


4 odpovědí

hlasů
5

Problém je se svými printf prohlášení.

UIAccelerationTřída definuje jeho vlastnosti jako tak:

@property(nonatomic, readonly) UIAccelerationValue x

A UIAccelerationValue je typedef‚ed třeba takto:

typedef double UIAccelerationValue

dPrintf specifikátor je pro ints. Chcete jeden pro čtyřhru. Chcete něco jako tak:

printf("\n%g %g %g", acceleration.x, acceleration.y, acceleration.z);

(Můžete použít fnebo ei Viz:. Http://en.wikipedia.org/wiki/Printf#printf_format_placeholders )

Odpovězeno 01/09/2010 v 01:48
zdroj uživatelem

hlasů
2

Tyto hodnoty zrychlení jsou dvoulůžkové, a dále vyjádřený v jednotkách zemské tíže. např 1g. Není divu, že když je přiřadit k ints a vytisknout hodnoty, které jsou pod nulou, jako složka vektoru zrychlení by být rozloženy po ose xyz, pokud jste drželi jeden z nich právě rovnoběžně se zemskou vektoru zrychlení.

Zacházet s nimi jako pohyblivé řádové čárce, že jsou, a měli byste vidět změny, jak manipulovat zařízení.

Jediný případ, kdy akcelerometr umožní oprávněné všechny nulové hodnoty je, když jsou ve volném pádu.

Odpovězeno 01/09/2010 v 01:47
zdroj uživatelem

hlasů
1
printf("\n%.5f", x);
printf("\n%.5f", y);
printf("\n%.5f", z);
Odpovězeno 01/09/2010 v 01:50
zdroj uživatelem

hlasů
1

x, y, z jsou plovoucí body, nejsou celá čísla.

změnit printf("\n%d", x);naprintf("\n%f", x);

Odpovězeno 01/09/2010 v 01:48
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more