#OSG+VS#06第三周

    xiaoxiao2021-03-25  93

    一周总结:

    1.通过“跟代码”,学习了设置太阳位置。

    osg::ref_ptr<osgEarth::Util::Ephemeris> ep = new Ephemeris(); osg::Vec3d sunPosition = ep->getSunPositionECEF(osgEarth::DateTime(2015, 6, 10, 0)); light->setPosition(osg::Vec4(sunPosition, 0.0f)); 注意:DateTime(year,month,day,hour)中的hour是UTC时间,即协调世界时,可理解为更精确的格林尼治标准时间。所以这里设置UTC零点,等于北京时间8点。

    一步步跟到最里面的定义声明,通过仔细阅读,就能理解某个函数的原理和作用(再例如insertGroup(m_ShadowCaster,mRoot))。

    2.又看了一遍shadowing.cpp,每一遍都有一点收获,但目前的收获还不足以解决问题。

    3.拿到最新代码,大概理解了阴影部分的代码流程,准备先把功能做完,再考虑阴影算法问题。到时候再仔细看那一段。

    4.装好AutoCAD2015,可用于查看.dwg阴影图。

    5.初步修改代码:①提高光影随时间变化的精细度(每一秒都有变化);②显示时间设置为北京时间。

    6.制作简易的时间进度条。

    主要还是对QT信号/槽原理的理解。时间控件与进度条horizontalSlider关联起来,时间改变,引起进度条的值变化,反之拖动进度条又能引起时间变化,涉及时间与整数的数据类型转换。

    待解决:①进度条的拖动和跳转不能同时存在,需要自行重写mouseMoveEvent。参考:http://blog.csdn.net/blubumbee/article/details/38664575

    ②不能自动“播放”,需要设置计时器QTimer。

    问题集锦:

    1.QT:Object::connect: No such slot 问题解决办法

    (1)类声明中有没有Q_OBJECT

    (2)声明的函数要加声明:

         private slots:

            void xxxx();

    (3)检查槽函数名拼写是否有误,以及对应的signal和slot的参数是否一致

    2.QT:QSlider 属性 singleStep 与 pageStep 的区别

    当焦点在slider 上时,通过pageup, pagedown 按钮或者点击到滚动栏上移动的数值为pageStep;通过左右方向键按钮移动的数值为singleStep.

    注意:在windows 系统中,鼠标移动到slider 上使用滚轮操作时的默认步长是 min(3*singleStep, pageStep), 但Mac 系统下貌似只是 3*singleStep,qt 源码中通过宏 Q_WS_MAC 来区分两段代码。  (参考:http://blog.csdn.net/perry_xiao/article/details/42192441)

    下周目标:

    1.日照量计算。目前思路:通过光线求交,每5分钟一采样。

    但组长提出,框选一个区域,计算是否符合标准(求区域一楼最小值)。

    这个一楼最小值怎么求呢?是个点还是面?点有无穷多,面又怎么求交?

    这些都是问题。不知道一周能否做个大概。努力吧。

    2.组长三天前给的代码,今天就问我有什么进展,感觉抓的还是比较紧的(不过早做完早回去嘛,至于回去以后干吗,现在先不用考虑)。不过只要用好上班的8小时,应该还是会有拿得出手的成果的。

    三月八号收到公司送的玫瑰和贺卡,感觉公司还是有一定企业文化的。现在的感觉不像第一次来那么印象差了(虽然小组只有组长和师姐跟我们说话最多,其他人见面也不理,我本来是想打招呼的…)。

    3.目前给自己的安排是:早上公交上刷公众号和打盹,晚上公交上听喜马拉雅。回去后,在机房练字或看C++,九点跑步。

    保持向上的姿态哟姑娘

    转载请注明原文地址: https://ju.6miu.com/read-13532.html

    最新回复(0)