Esempio n. 1
0
    //
    float SunTemperatureCal()
    {
        m_temperatureSunLast = m_temperatureSunNow;
        float x = (m_dayTime.MinutNow() / m_dayTime.MinutsInDay()) * 3.14f;

        m_temperatureSunNow = Mathf.Sin(x) * m_TRange + (m_TAverage - m_TRange / 2);

        //计算海拔影响
        m_temperatureSunNow -= m_elevation * 0.006f;

        return(m_temperatureSunNow);
    }
Esempio n. 2
0
    //
    void SunPosCal()
    {
        float hour   = m_dayTime.Hour();
        float minute = m_dayTime.Minute();

        if (hour >= m_sunSetTime && hour < 24)
        {
            m_sunAngle = 6.28f * ((minute + (hour - m_sunRiseTime) * m_hourInMinuts) / m_dayTime.MinutsInDay());

            //Debug.Log("hour="+ hour+" , angle=" + (minute + hour * m_hourInMinuts) / (m_totalDayMinutes));
            m_sunPos.y = 100 * Mathf.Sin(m_sunAngle);
            m_sunPos.x = 100 * Mathf.Cos(m_sunAngle);
        }
        else if (hour > 0 && hour < m_sunRiseTime)
        {
            m_sunAngle = 6.28f * ((minute + (hour + 24 - m_sunRiseTime) * m_hourInMinuts) / m_dayTime.MinutsInDay());

            //Debug.Log("hour="+ hour+" , angle=" + (minute + hour * m_hourInMinuts) / (m_totalDayMinutes));
            m_sunPos.y = 100 * Mathf.Sin(m_sunAngle);
            m_sunPos.x = 100 * Mathf.Cos(m_sunAngle);
        }
        else if (hour >= m_sunRiseTime && hour < m_sunSetTime)
        {
            m_sunAngle = 3.14f * ((minute + (hour - m_sunRiseTime) * m_hourInMinuts) / (m_totalDayMinutes));

            //Debug.Log("hour="+ hour+" , angle=" + (minute + hour * m_hourInMinuts) / (m_totalDayMinutes));
            m_sunPos.y = 100 * Mathf.Sin(m_sunAngle);
            m_sunPos.x = 100 * Mathf.Cos(m_sunAngle);
        }
    }