几何尺寸与公差论坛------致力于产品几何量公差标准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)
-   -   【转帖】controlling the tessellation of arcs and circles (http://www.dimcax.com/hust/showthread.php?t=15467)

yang686526 2009-05-04 06:09 PM

【转帖】controlling the tessellation of arcs and circles
 
controlling the tessellation of arcs and circles
controlling the tessellation of arcs and circles
the only way i have found to control the number of triangles that are produced from filled arc and circle boundaries (for example, wide polylines with arc segments) is with the following method:
odgspaperlayouthelperptr:nsize( )
i pass in very large sizes in order to get more accurate paper space geometry. the problem is that too many triangles are produced in odgigeometrysimplifier::shellproc which slows down the rendering process.
is there any way to decrease the number of triangles that are produced by shellproc?
i have looked into the deviation members but they never seem to be set to anything meaningful.
to do vectorization i have derived my own classes from odgsbasevectorizeview, odgsbasevectorizedevice, and odgigeometrysimplifier.
thanks for any help on this.
chad

the number of triangles depends on odgigeometrysimplifier's deviation. odgigeometrysimplifier gets deviation this way:
quote:
double odgigeometrysimplifier::deviation(const odgideviationtype type, const odgepoint3d& point) const
{
if(m_pdeviation)
{
return m_pdeviation->deviation(type, point);
}
return m_deviations[type];
}
void odgigeometrysimplifier::setdeviation(const odgedoublearray& deviations)
{
m_deviations = deviations;
m_pdeviation = 0;
}
void odgigeometrysimplifier::setdeviation(const odgideviation* pdeviation)
{
m_pdeviation = pdeviation;
}
you should set deviation to your odgigeometrysimplifier instance before the rendering (see, e.g. odgsopenglvectorizeview::beginviewvectorization() - gsopenglvectorizer.cpp)
sincerely yours,
george udov


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