当前位置: 首页 > news >正文

装饰网站建设效果图外国网站设计风格

装饰网站建设效果图,外国网站设计风格,永康网站建设制作,代刷网站推广免费整体计算方法 在编写该代码的过程中寻找了多篇博文和论文#xff0c;综合所有文章且按网上的以0时的方位角的0#xff0c;且随时间累加累加至360度。我修改了博文和论文的一些角度的计算方法。得到一下代码与网站计算的方位角相互验证过#xff0c;误差不超过1 验证网站 太…整体计算方法 在编写该代码的过程中寻找了多篇博文和论文综合所有文章且按网上的以0时的方位角的0°且随时间累加累加至360度。我修改了博文和论文的一些角度的计算方法。得到一下代码与网站计算的方位角相互验证过误差不超过1° 验证网站 太阳赤纬角 n为该天在当年的序号 另一种方法没尝试成功 代码如下读者可以自行尝试我没尝试成功 int n, n0;double t, theta, delta;// 计算n和n0n month * 30 day;n0 79.6764 0.2422 * (year - 1985) - ((year - 1985) / 4);// 计算tt n ;// 计算θ日角theta 2 * M_PI * t / 365.2422;// 计算δ太阳赤纬delta 0.3723 23.2567 * sin(theta) 0.1149 * sin(2 * theta) - 0.1712 * sin(3 * theta)- 0.758 * cos(theta) 0.3656 * cos(2 * theta) 0.0201 * cos(3 * theta);太阳时角 时角这里的话中午时时角为0下午时角为负可以简化为时角15*(t-12) 不过这里计算的是时区的时间不是当地时间所以存在误差我怀疑代码计算的误差大部分都是出自这里 当地时角位于东7区的换算方法: (120度 – 当地经度) * 41个小时15度平均下来1度4分钟。 既时角15*(t-12)(120-经度) 太阳高度角 通过上述两个方程即可求出高度角的各个参数。 太阳方位角 h为太阳高度角 Φ为纬度数据 σ为太阳的赤纬角 代码部分 C语言三角函数运算 因为角度计算涉及大量三角函数所以C语言的三角函数计算不可避免需要使用。 C语言的三角函数计算函数 需要包含头文件#include math.h double __cdecl sin(double _X);double __cdecl cos(double _X);double __cdecl tan(double _X);double __cdecl asin(double _X);double __cdecl acos(double _X);double __cdecl atan(double _X);double __cdecl atan2(double _Y,double _X);其中sin、cos、tan 函数的参数是一个用弧度表示的角度分别返回这个角度的正弦、余弦、正切值。度和弧度都是衡量角的大小的单位。度用 ° 来表示弧度用rad表示。 1度π/180 弧度 ( ≈0.017453弧度 ) asin()、acos、atan 函数分别返回它们的参数的反正弦、反余弦、反正切值。功能刚好和sin、cos、tan 函数相反。 赤纬角计算 通过公式 /******************************************************************************************************************************************** **名称 Declination_Angle_Calculation **功能 计算太阳赤纬角 **形参 YearData年数据 DayData日数据 **返回值 DeclinationAngle太阳赤纬角 *********************************************************************************************************************************************/ static double Declination_Angle_Calculation(double Daydata,short YearData) {double DeclinationAngle;DeclinationAngle 23.45 * sin((Daydata-80)/370.0 * 360*PI/180); //赤纬角公式 return DeclinationAngle; //返回赤纬角 }时角计算 通过公式 时角15*(t-12) /******************************************************************************************************************************************** **名称 Hour_Angle_Calculation **功能 计算太阳时角 **形参 HourData小时数据 **返回值 HourAngle太阳时角 *********************************************************************************************************************************************/ static double Hour_Angle_Calculation(double HourData) {double HourAngle;HourAngle 15*(HourData-12);return HourAngle;}太阳高度角计算 通过公式 /******************************************************************************************************************************************** **名称 Height_Angle_Calculation **功能 计算太阳高度角 **形参 LatitudeData纬度数据 HourData小时数据 DeclinationAngle赤纬角数据 **返回值 ElevatingAngle太阳高度角 *********************************************************************************************************************************************/ static double Height_Angle_Calculation(double LatitudeData,double HourAngle,double DeclinationAngle) {double ElevatingAngle; //高度角double ElevatingAngle_sin; //高度角正弦值double DeclinationAngle_sin sin(DeclinationAngle * PI / 180); //赤纬角的正弦值 double DeclinationAngle_cos cos(DeclinationAngle * PI / 180); //赤纬角余弦值 double LatitudeData_sin sin(LatitudeData * PI / 180); //纬度正弦值 double LatitudeData_cos cos(LatitudeData * PI / 180); //纬度余弦值 double HourAngle_cos cos(HourAngle * PI/180);ElevatingAngle_sin (DeclinationAngle_sin*LatitudeData_sin) (DeclinationAngle_cos*LatitudeData_cos*HourAngle_cos);ElevatingAngle asin(ElevatingAngle_sin)*180/PI;return ElevatingAngle; }太阳方位角计算 通过公式 /******************************************************************************************************************************************** **名称 Azimuth_Angle_Calculation **功能 计算太阳方位角 **形参 ElevatingAngle太阳高度角 HourAngle太阳时角 DeclinationAngle赤纬角数据 HourData小时数据 LatitudeData纬度数据 **返回值 太阳方位角0点开始360度 *********************************************************************************************************************************************/ static double Azimuth_Angle_Calculation(double ElevatingAngle,double HourAngle,double DeclinationAngle,double HourData,double LatitudeData) {double AzimuthAngle,AzimuthAngle_cos;double ElevatingAngle_cos cos(ElevatingAngle * PI / 180); //高度角余弦值 double ElevatingAngle_sin sin(ElevatingAngle * PI / 180); //高度角正弦值 double LatitudeData_sin sin(LatitudeData * PI / 180); //纬度正弦值 double LatitudeData_cos cos(LatitudeData * PI / 180); //纬度余弦值 double HourAngle_sin sin(HourAngle * PI / 180); //时角正弦值 double DeclinationAngle_cos cos(DeclinationAngle * PI / 180); //赤纬角余弦值 double DeclinationAngle_sin sin(DeclinationAngle * PI / 180); //赤纬角正弦值AzimuthAngle_cos (ElevatingAngle_sin*LatitudeData_sin-DeclinationAngle_sin)/(ElevatingAngle_cos*LatitudeData_cos); //初步计算太阳方位角弧度值的cos值 AzimuthAngle acos(AzimuthAngle_cos)*180/PI; //计算方位角的角度 if (HourData 12) //不判断的话12点为180度最高然后两边的角度都是180度递减所以需要一个360度的角度反馈需要将方位角判断一下。 {return AzimuthAngle 180;}else {return -AzimuthAngle 180;}} 其中函数尾部的返回时180度加减计算得出的方位角是为了对齐网页计算得出的方位角以0时的方位角的0°且随时间累加累加至360度。 角度计算到此就结束了 时间戳转换 下文内容多数引用自博客 因为我打算用stm32f103mcu进行太阳方位角以及高度角的计算所以需要用stm32单片机获取时间戳信息 我采用的方法是使用esp8266-01s模块来通过联网获取时间戳的方式得到时间。 配置 ESP8266 入网 ATCWMODE1 // station模式设置成3也行 ATRST // 重启模块 ATCWJAPssid,password // 连接AP连接授时服务器 ATCIPMUX0 // 设置WiFi模块为单路链接 ATCIPSTARTUDP,1.cn.pool.ntp.org,123 // 链接到 NTP 服务器时间服务器默认的端口号是 123协议为UDP.ATCIPSEND48 // 发送48byte的数据若ESP8266返回则继续注意严格遵照以下数据且使用16进制发送 //切勿发送新行E3 0 6 EC 0 0 0 0 0 0 0 0 31 4E 31 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 //用16进制接收数据 E3 0 6 EC 0 0 0 0 0 0 0 0 31 4E 31 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0不知道为什么我好像需要发送两遍下边的16进制数据然后接收两帧数据 接收数据 执行完上面两步此时如果顺利的话会受到一大堆16进制数据诸如41 54 2B 43 49 50 53 45 4E 44 3D 34 38 0D 0D 0A 0D 0A 4F 4B 0D 0A 3E 20 0D 0A 52 65 63 76 20 34 38 20 62 79 74 65 73 0D 0A 0D 0A 53 45 4E 44 20 4F 4B 0D 0A 0D 0A 2B 49 50 44 2C 34 38 3A 24 02 06 E9 00 00 00 52 00 00 08 F2 0A 45 02 22 E0 4F 57 31 79 AF 20 82 00 00 00 00 00 00 00 00 E0 4F 59 9C 2F 4A 40 07 E0 4F 59 9C 2F 4C 22 B9此时需要找到数据中的关键帧也就是服务器返回的48位时间数据它们通常具有以下格式如果找不到的话请重试2中的3、4步 ① 它前面的数据为2B 49 50 44 2C 34 38 3A(IPD,48:,他后面没有东西;② 它通常以 24 开头.3.对数据提取后编号其中[40][41][42][43]为我们需要的时间数据在本例中为E0 4F 5C 00. 处理数据 ①将”E04F5C00“转为十进制为3763297280此即为1900距今的秒数。 ②把这个时间减去220898880070年得到标准的Unix时间戳。[3763297280-22089888001554308480] ③[1554308480/3155673619702019]得到当下年份。 ④计算月份和日期需要考虑平年闰年和每月天数太麻烦我也没搞懂。 ⑤[(1554308480/3600)%24824]得到北京时间-时(别忘了满24归零) ⑥[(1554308480/60)%6021]得到北京时间-分 ⑦[1554308480%6020]得到北京时间-秒既当下时间是 242120 ⑧将时间戳(1554308480)输入 时间戳生成网页 与计算结果进行比较 时间戳解码并加入代码 因为我们计算太阳角度的代码只需要获取年份当天在一年中的序号以及小时分钟信息。 所以有以下计算 /******************************************************************************************************************************************** **名称 Timestamp_Calculation **功能 计算时间戳 **形参 Timestamp时间戳数据 Year_data年数据存放的地址 DayData日数据存放的地址 Hour_data小时数据存放的地址 **返回值 无 *********************************************************************************************************************************************/ static void Timestamp_Calculation(unsigned int Timestamp,short *Year_data,short *DayData,double *Hour_data) {Timestamp Timestamp-0x83AA7E80; //将网络获取的时间戳减去70年得到标准时间戳 *Year_data Timestamp/315567361970; //用时间戳获取年份 *DayData (short)((Timestamp%31556736)/86400)1; //获取日期 *Hour_data (Timestamp/3600)%248; //获取小时数 if(*Hour_data24){*Hour_data 0; //当时间为24点时归零 } *Hour_data ((Timestamp/60)%60)/60.0; //获取分钟信息并且转为小数形式加入小时数中 }步骤 将网络获取的时间戳减70年得到标准时间戳然后用标准时间戳除一年的秒数就得到距离时间戳开始运行的1970年过去了多少年标准时间戳除于一天的秒数为今年过去了多少天还要加上没过完的今天即加1。小时数为将时间戳除一小时的秒数得到至今运行了多少小时再进行24小时取余余今天过了多少小时小时数在加上分钟数得到带小数点的精确时间。方法类似步骤5
http://www.hkea.cn/news/14531369/

相关文章:

  • 建设网站注意事项免费ppt大全网
  • 地方网站怎么做挣钱小程序网
  • 成都网站建设推进方案临沂网站建设报价
  • 做网站跟做app哪个累做网站到底能不能赚钱
  • 如何查询网站备案进度查询西安做网站的公司维护
  • cms建站模板app为什么要立刻做网站
  • 电影网站做视频联盟成都网站设公司
  • 门户网站模板wordpress模板网站标题重复
  • 名城建设有限公司网站wordpress 链接插件
  • 个人做公司网站合肥工程建设交易中心网站
  • 为什么做网站sae wordpress 图片插件
  • 铜山区建设局网站手机建站的网站有哪些
  • 技术支持:上海网站建设深圳营销型网站建设服务哪家好
  • 做企业网站怎么接活南京建站平台
  • 天津商城网站制作网络推广的优势
  • 响应式网站素材uc官方网站开发者中心
  • 企业网站托管收费标准做书封面的模板下载网站
  • 网站推广的方法及特点平台seo什么意思
  • 普通电脑可以做网站服务器免费网站alexa排名查询
  • 做公司网站需要怎么做律所的官方网站
  • 宁波网站建设哪家好可做笔记的阅读网站
  • 佛山做网站网站建设实训 考核要求
  • 创建网站怎么弄wordpress主题 手机
  • h5网站动画怎么做的电子商务网页设计总结
  • 做网站好公司有哪些wordpress百家主题
  • 简历在线制作网站免费wordpress 多站点教程
  • 网站建设制作哪家便宜Discuz网站制作教程
  • 可信赖的宜昌网站建设旅游网站策划书
  • 做汽车配件网站的公司英文wordpress转中文
  • 国外网站大全帝国cms模板台山网站建设公司