Page 1 of 1
3DR contour method and efficiency
Posted: Mon Jan 30, 2006 3:18 am
by Tom Chien
David,
what is contour analysis method used? Is Barnes, Cressman or others?
I used DPLOT generating huge quantity of files by GenerateMesh command[code]dPlot_Command(DocNum,"[GenerateMesh(1199,279,0,0,1199,27,0,1,4)]")[/code] foollowed by[code]dPlot_AddData(DocNum, DATA_3DR, 33600, 1, NULL, sdgZone.data)[/code]. Does any way I can do to make it faster? Or any suggestion by having a small program embedded in my app? Thanks a lot for providing DPLOT and enthusiatic service.
Tom
Posted: Mon Jan 30, 2006 10:59 am
by DPlotAdmin
what is contour analysis method used? Is Barnes, Cressman or others?
It's umm... the DPlot method
Nothing as complicated as the above. DPlot generates a triangular mesh from your input 3D points. Each triangle is considered planar. Contour lines are then just solutions to the plane equation Ax + By + Cz + D = 0 for each triangle.
If instead you're asking about GenerateMesh... (from the Help file)... The bivariate interpolation method uses the IDBVIP algorithm developed by H. Akima, available from the NETLIB Repository,
http://netlib2.cs.utk.edu
I used DPLOT generating huge quantity of files by GenerateMesh command dPlot_Command(DocNum,"[GenerateMesh(1199,279,0,0,1199,27,0,1,4)]") foollowed by dPlot_AddData(DocNum, DATA_3DR, 33600, 1, NULL, sdgZone.data). Does any way I can do to make it faster?
The algorithm is about as fast as it is going to get. My only suggestion is to make sure you're operating on one file then saving it (or printing it or whatever your goal is) then closing it before working on the next file. 3D plots consume a lot of memory, and if you have many large plots open at the same time then you are likely using virtual memory.
If you don't need the smoothing characteristics of bivariate interpolation then set "method" to 1 in the GenerateMesh command. All that does is find the existing triangle that each output point lies in and uses the plane equation for that triangle to solve for Z. It is considerably faster than bivariate interpolation.