查看单个帖子
旧 2009-05-07, 06:34 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】viewports Center Point In Model Space

viewport's center point in model space
viewport's center point in model space
i am using the following code to determine viewport's center point in model space:
code:
// model space center of paper space viewport
odgepoint3d camtarget = pviewport->viewtarget();
odgevector3d camtargetvec(camtarget.x,camtarget.y,camtarget.z);
odgevector3d viewdir = pviewport->viewdirection();
odgematrix3d xform = odgematrix3d:lanetoworld(viewdir) *
odgematrix3d::rotation(pviewport->twistangle(),odgevector3d::kzaxis);
odgevector3d xvec = xform.getcsxaxis();
odgevector3d yvec = xform.getcsyaxis();
odgepoint2d center = pviewport->viewcenter();
odgevector3d wcenter = camtargetvec + viewdir + xvec * center.x + yvec * center.y;
there is something wrong with the code because for the attached file (viewcenter.dwg) wcenter is (-60009,19104,37) when it should be (106474,-11683,0). where is the error?
attached files
solution?
this seems to work:
code:
// model space center of paper space viewport
odabstractviewpeptr pview(pviewport);
odgepoint3d viewcenter = pview->target(pviewport);
viewcenter = viewcenter.project(odgeplane::kxyplane, pview->direction(pviewport));
can i trust that the above code always gives the right center point?
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)