高级会员
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
|
【转帖】not getting correct measuremen
not getting correct measurement
not getting correct measurement
in reference to the query posted on 7th april 2005 ( getting the extents).
as per the solution given below :
************************************************** *******
/ get the drawing extents for the active view.
double extsx = 0.0;
double extsy = 0.0;
odgsview* pview = pdevice->viewat(0);
oddbextents ext;
ext.addblockext(oddbblocktablerecordptr(pdb->getactivelayoutbtrid().safeopenobject()), pview->viewingmatrix());
if (ext.isvalidextents())
{
odgepoint3d targ = pview->target();
odgevector3d dirfromtarg = pview->position() - targ;
// set target to center of the view and keep the view direction.
targ = ext.minpoint() + (ext.maxpoint() - ext.minpoint()) / 2.0;
targ.transformby(pview->viewingmatrix().invert());
if(pview->isfrontclipped() || pview->isbackclipped())
{
// keep distance from target to front & back planes.
targ = targ.orthoproject(odgeplane(pview->target(), dirfromtarg));
}
// get the extents and increase by 2% for margin around drawing.
extsx = ext.maxpoint().x - ext.minpoint().x;
extsy = ext.maxpoint().y - ext.minpoint().y;
pview->setview(targ + dirfromtarg, targ, pview->upvector(), extsx * 1.02, extsy * 1.02);
}
// calculate the scale so the drawing will fit inside a 10,000 x 10,000 window.
double dscale = (extsx >= extsy) ? (10000.0 / extsx) : (10000.0 / extsy);
// set the drawing window to the true extents size.
odgsdcrect winrect(0, static_cast<long>(extsx * dscale), 0, static_cast<long>(extsy * dscale));
pdwgvectorizedevice->onsize(winrect);
************************************************** ******
when i mplement the above solution, on scaling the width and height by 2%,
the block of 100 * 100 * 100 measures 98.98 * 98.98 * 98.98, that is it reduces by 2%. on not scaling the width and height the sheet borders get clipped but the measurment is 100* 100* 100.
please can anyone advice on the problem , this is urgent.
thank you for the help
nupur
|