そこで、加速度計のジッターを緩和するためのローパス加速度計関数を作成しています。データを表す CGFloat 配列があり、この関数でそれを減衰させたい:
// Damps the gittery motion with a lowpass filter.
func lowPass(vector:[CGFloat]) -> [CGFloat]
{
let blend:CGFloat = 0.2
// Smoothens out the data input.
vector[0] = vector[0] * blend + lastVector[0] * (1 - blend)
vector[1] = vector[1] * blend + lastVector[1] * (1 - blend)
vector[2] = vector[2] * blend + lastVector[2] * (1 - blend)
// Sets the last vector to be the current one.
lastVector = vector
// Returns the lowpass vector.
return vector
}
この場合、lastVector はプログラムの上部で次のように定義されています。
var lastVector:[CGFloat] = [0.0, 0.0, 0.0]
vector[a] = ... という形式の 3 行でエラーが表示されます。なぜこのエラーが発生するのかについてのアイデアはありますか?