![]() |
【转帖】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. |