几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   DirectDWG (http://www.dimcax.com/hust/forumdisplay.php?f=89)
-   -   【转帖】viewports Center Point In Model Space (http://www.dimcax.com/hust/showthread.php?t=19034)

yang686526 2009-05-07 06:34 PM

【转帖】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::planetoworld(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?


所有的时间均为北京时间。 现在的时间是 12:02 AM.