私は速度を計算しており、うまくいきます。しかし、どのように私はスピード変数の平均値を見つけることができますか?速度値は1秒間に約1回変化します(GPS値が更新された場合)。私は、ユーザーの平均速度を表示する必要があり、彼(彼女)を押す「完了」ボタンここで任意のヘルプUnity3D - 毎秒変化するfloatの平均値を求める
ため
おかげで私のサンプルコードです:
void Update()
{
timer += Time.deltaTime;
if (lonA != Input.location.lastData.longitude || latA != Input.location.lastData.latitude)
{
CalculateDistances(lonA, latA, Input.location.lastData.longitude, Input.location.lastData.latitude); // last distance and overall distanceS
lonA = Input.location.lastData.longitude;
latA = Input.location.lastData.latitude;
lastTime = timer;
timer = 0;
speed0 = speed;
CalculateSpeed();
}
}
public static float Radians(float x)
{
return x * Mathf.PI/180;
}
public void CalculateDistances(float firstLon, float firstLat, float secondLon, float secondLat)
{
float dlon = Radians(secondLon - firstLon);
float dlat = Radians(secondLat - firstLat);
float distance = Mathf.Pow(Mathf.Sin(dlat/2), 2) + Mathf.Cos(Radians(firstLat)) * Mathf.Cos(Radians(secondLat)) * Mathf.Pow(Mathf.Sin(dlon/2), 2);
float c = 2 * Mathf.Atan2(Mathf.Sqrt(distance), Mathf.Sqrt(1 - distance));
lastDistance = 6371 * c * 1000;
}
void CalculateSpeed()
{
speed = lastDistance/lastTime * 3.6f;
speedText.text = Mathf.RoundToInt(speed).ToString();
}
実際の速度変数を使用する代わりに、それらの合計と移動距離を知ることができます。 –
overallDistanceをoverallTimeで割りますか? –
ビンゴ、距離/時間=旅行の平均速度 –