MyAppTheme Logo2

Blog

Alles rund um's iPhone

Accelerator programmieren

Eine der interessanten Möglichkeiten des iPhone ist dessen innovative Bedienung, z.B durch Bewegung. Möchte man beispielsweise durch Schütteln des iPhone eine bestimmte Aktion ausführen, so hilft einem untenstehender Code. Viel Spass beim selber experimitieren!

- (void) accelerometer:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)acceleration {
UIAccelerationValue length;
UIAccelerationValue x, y, z;

// Use a basic high-pass filter to remove the influence of the gravity
_accelerometer[0] = acceleration.x * kFilteringFactor + _accelerometer[0] * (1.0 - kFilteringFactor);
_accelerometer[1] = acceleration.y * kFilteringFactor + _accelerometer[1] * (1.0 - kFilteringFactor);
_accelerometer[2] = acceleration.z * kFilteringFactor + _accelerometer[2] * (1.0 - kFilteringFactor);

// Compute values for the three axes of the acceleromater
x = acceleration.x - _accelerometer[0];
y = acceleration.y - _accelerometer[0];
z = acceleration.z - _accelerometer[0];

// Compute the intensity of the current acceleration
length = sqrt(x * x + y * y + z * z);

// If above a given threshold, it is a shake
if ((length >= kEraseAccelerationThreshold) && (CFAbsoluteTimeGetCurrent() > _lastTime + kMinEraseInterval)) {
[self changeImage];
_lastTime = CFAbsoluteTimeGetCurrent();
}
}