我要发帖 回复

正式会员

6

主题

33

积分

0

专家分

:

私信
发表时间 : 2009-7-24 11:43:08 | 浏览 : 900    评论 : 4
我的原先设想是 点第一下旋转45度,再点第二下
又转45度,然后停顿3秒后自动转-60度回到某个位置,为什么执行时没看到点击第二下转45度后的状态位置,而是我用SLEEP()函数停顿3秒 直接转回45+45-60=30度的位置了。用什么办法来展示这三种位置状态呢特别是能够显示90的位置状态最好了,谢谢了,代码如下所示
//第一次点击代码
if(!strcmp(myDof->getName(),nameDofNodeToBeOpened4))
                                         {   
                                               
                                                 myDof->setRotateH(45,TRUE);
                         flag2=1;
                         selectedNode=node;
                                                 cout<<"rotate1"<<endl;
                        
                                                     
                                         }
//第二次鼠标点击代码
if(!strcmp(myDof->getName(),nameDofNodeToBeOpened4))
                                           {
                         if(flag2==1)
                                                 {
                             
                                                 myDof->setRotateH(90,TRUE);
                             cout<<"rotate2"<<endl;
                           
                                    
                             cout<<"before"<<endl;
                                                         
                                                          Sleep(3000);
                                                          flag3=3;
                                                          if(flag3==3)
                                                          {cout<<"after"<<endl;
                            myDof->setRotateH(-45,TRUE);
                                                        cout<<"rotate3"<<endl;}
                                                         
                                                     flag2=0;
                                                     selectedNode=NULL;                                           
                                                  
                                             }
                                           }

最近VR访客

xiaoyuer 评论于2009-7-24 16:38:07
两处错误:
1)
myDof->setRotateH(90,TRUE);
应改为:
myDof->setRotateH(45,TRUE);
2)
myDof->setRotateH(-45,TRUE);
改为:
myDof->setRotateH(-60,TRUE);
wangqingcheng 评论于2009-7-24 16:47:02

求助

谢谢您,您只是看到了表面现象,上述角度是我的手写错误,即使改过来,第二个位置状态根本在最终结果中不会出现,直接转回45+45-60=30度的位置了
wangqingcheng 评论于2009-7-24 16:52:26

求助

我现在想让程序直接显示第一,第二个位置状态后,再回到第三个位置状态,但实际上在第二次点击鼠标代码中运行完毕后,直接就回到了30度的位置而没有显示运行到45+45=90度的位置上,请各位想想怎样才能显示90度的位置后再转-45度呢
joe_li001 评论于2009-11-3 12:21:12
因为后两次动作在一帧里完成了,你没看到过程。

手机版|VR开发网 统计 津ICP备18009691号
网安备12019202000257

GMT+8, 2021-1-28 09:44 AM

返回顶部