Closed dharmendra08 closed 9 years ago
Thanks for the test case, could you tell me which of the 3 you are using ? FAST_PREDICATE LOOSE_PREDICATE EXACT_PREDICATE
Currently I am using LOOSE_PREDICATE; Can you suggest me which PREDICATION method to use?
I think I got the issue of failure. Since points are lying on grid and most of the cases are OnCircle case, so we need to correct OnCirlce case of del_valid_link function and also del_valid_left, del_valid_right. Its not related to which Prediction technique I am using. We need to change algorithm for OnCircle case.
I have tested the code (building the grid) with PREDICATE set to EXACT_PREDICATE, the output seems fine. Are you expecting a triangle instead of quad ?
Yeah.. right I am expecting triangle as in 2-dimension triangles are best to interpolate data instead of higher edge polygon. If we go for higher dimension then figure changes to tetrahedron,..etc. In EXACT_PREDICATE : Code is using in-build C++ function such as incircle. While compiling I got following error: LNK2001 unresolved external symbol __cdecl incircle . Do you have any idea how to resolve this issue. (I am using VS2010)
Please grab the latest and test, the issue should be fixed with the last updates!
No comment from the bug issuer. Bug is fixed.
Hi, Can you add a function which will check if a point is lying outside the delaunay structure? This will be useful when using this structure for interpolation.
Also, I am checking for below test, Result is not correct:
const int n = 100; float x1[n1],y1[n1]; float x[n],y[n],value[n]; float point[2_n]; for( int i = 0; i < n1; ++i ) {x1[ i ] = y1[ i ] = i;} for( int i = 0; i < n; ++i ){ x[ i ] = x1[ i / 10 ]; y[ i ] = y1[ i % 10 ]; } int j = 0, k= 0; for(int i=0;i<2_n;i++){ if(i%2 == 0) { point[i] = x[j]; j++;} else { point[i] = y[k]; k++;}
} int np = sizeof point/(2*sizeof(float)); delaunay2d(point,np);
[I checked no edge formation between (4,9) and (5.9)] I guess U are missing case when points lie OnCircle in "del_valid_link" function.