#OSG+VS#06第三周

来源:互联网 发布:php 反射类 编辑:程序博客网 时间:2024/05/01 15:13

一周总结:

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++,九点跑步。


保持向上的姿态哟姑娘


1 0