1.一种基于三维引擎实时模拟太阳角度变化的方法,其特征在于,包括以下步骤:将孪生模型导入到三维引擎中,设置用以模拟太阳光的平行光;
根据当前日期时间求出太阳直射点纬度;
基于太阳直射点纬度和孪生场景所在地理位置的纬度,求出当日昼长、日出时间和日落时间;
计算太阳倾斜角和太阳高度角;
将求出的太阳倾斜角和太阳高度角在三维引擎中分别设置为平行光的x轴旋转值和平行光的y轴旋转值;
对场景进行渲染,系统将基于当前日期时间在场景中模拟出实时的阳光效果;
所述根据当前日期时间求出太阳直射点纬度,具体包括:若当前日期时间为春分到秋分,即3月21日至9月23日,太阳直射点纬度为:;
其中,δ为太阳直射点纬度,n为当前日期与3月21日的相差天数,π为3.14;
若当前日期时间为秋分到冬至,即9月23日至12月22日,太阳直射点纬度为:;
其中,δ为太阳直射点纬度,n为当前日期与3月21日的相差天数,π为3.14;
若当前日期时间为冬至到次年春分,即12月22日至次年3月21日,太阳直射点纬度为:;
式中,δ为太阳直射点纬度,n为当前日期与3月21日的相差天数,π为3.14;
所述基于太阳直射点纬度和孪生场景所在地理位置的纬度,求出当日昼长、日出时间和日落时间,具体包括:通过经纬度查询网站获取孪生场景所在地理位置的纬度;
将太阳直射点纬度和孪生场景所在地理位置的纬度代入下式,求出当日昼长:;
其中,h为当日昼长,φ为孪生场景所在地理位置的纬度,δ为太阳直射点纬度,π为
3.14;
将当日昼长带入下式,求出日出时间:;
然后将日出时间与当日昼长带入下式,求出日落时间:;
所述计算太阳倾斜角和太阳高度角,包括:计算太阳倾斜角:将孪生场景的纬度与太阳直射点的纬度带入下式,求出当前太阳倾斜角:;
计算太阳高度角:将当日昼长带入下式,求出每分钟的太阳高度角:;
将获取到的当前时间、每分钟的太阳高度角b以及日出时间s1代入下式,求出当前太阳高度角:;
其中,c为当前太阳高度角,hour为当前小时数,minute为当前分钟数,s1为日出时间。
2.一种基于三维引擎实时模拟太阳角度变化的系统,其特征在于,包括:模型导入模块,用以将孪生模型导入到三维引擎中,设置用以模拟太阳光的平行光;
太阳直射点纬度获取模块,用以根据当前日期时间求出太阳直射点纬度;
第一计算模块,用以基于太阳直射点纬度和孪生场景所在地理位置的纬度,求出当日昼长、日出时间和日落时间;
第二计算模块,用以计算太阳倾斜角和太阳高度角;
赋值模块,用以将求出的太阳倾斜角和太阳高度角在三维引擎中分别设置为平行光的x轴旋转值和平行光的y轴旋转值;
场景渲染模块,用以对场景进行渲染,系统将基于当前日期时间在场景中模拟出实时的阳光效果;
所述太阳直射点纬度获取模块具体用于:若当前日期时间为春分到秋分,即3月21日至9月23日,太阳直射点纬度为:;
其中,δ为太阳直射点纬度,n为当前日期与3月21日的相差天数,π为3.14;
若当前日期时间为秋分到冬至,即9月23日至12月22日,太阳直射点纬度为:;
其中,δ为太阳直射点纬度,n为当前日期与3月21日的相差天数,π为3.14;
若当前日期时间为冬至到次年春分,即12月22日至次年3月21日,太阳直射点纬度为:;
式中,δ为太阳直射点纬度,n为当前日期与3月21日的相差天数,π为3.14;
所述第一计算模块具体用于:通过经纬度查询网站获取孪生场景所在地理位置的纬度;
将太阳直射点纬度和孪生场景所在地理位置的纬度代入下式,求出当日昼长:;
其中,h为当日昼长,φ为孪生场景所在地理位置的纬度,δ为太阳直射点纬度,π为
3.14;
将当日昼长带入下式,求出日出时间:;
然后将日出时间与当日昼长带入下式,求出日落时间:;
所述第二计算模块具体用于:计算太阳倾斜角:将孪生场景的纬度与太阳直射点的纬度带入下式,求出当前太阳倾斜角:;
计算太阳高度角:将当日昼长带入下式,求出每分钟的太阳高度角:;
将获取到的当前时间、每分钟的太阳高度角b以及日出时间s1代入下式,求出当前太阳高度角:;
其中,c为当前太阳高度角,hour为当前小时数,minute为当前分钟数,s1为日出时间。
3.一种计算机设备,其特征在于,包括:存储器,用以存储计算机程序;
处理器,用以执行所述计算机程序时实现如权利要求1所述基于三维引擎实时模拟太阳角度变化的方法的步骤。