[Pkg-octave-devel] Bug in shapecentroid [was: Status of the Octave-Forge packages in Debian]
Rafael Laboissiere
rafael at laboissiere.net
Wed Mar 21 13:43:07 UTC 2012
* Rafael Laboissiere <rafael at laboissiere.net> [2012-03-18 20:16]:
> 3) The test of shapetransform fails:
>
> ==============================================================
> ***** test
> v = shapecentroid (shape)(:);
> nshape = shapetransform (shape, -v);
> vn = shapecentroid (nshape)(:);
> assert(vn,[0; 0],1e-2);
> !!!!! test failed
> assert (vn,[0; 0],1e-2) expected
> 0
> 0
> but got
> -682.75
> -528.18
> maximum absolute error 682.753 exceeds tolerance 0.01
> ==============================================================
I tracked down the problem and discovered that it comes from the
shapecentroid function, which seems to compute the wrong centroid in some
cases. Here is an example, with the following shape taken from the test
section of file shapetransform.m:
############################################################
shape = {[-93.172 606.368 -476.054 291.429;
-431.196 637.253 11.085 163.791];
[-75.3626 -253.2337 457.1678 328.5714;
438.7659 -653.6278 -7.9953 380.9336];
[-89.5841 344.9716 -275.3876 457.1429;
-170.3613 237.8858 1.0469 158.0765];...
[32.900 -298.704 145.804 437.143;
-243.903 369.597 -34.265 226.648];
[-99.081 409.127 -352.903 317.143;
55.289 -114.223 -26.781 318.076];
[-342.231 191.266 168.108 274.286;
58.870 -38.083 -89.358 232.362]};
############################################################
Using "shapeplot(shape)", I can clearly see that the centroid for this
shape is situated around x = 340 and y = 260. However, shapecentroid
gives the following:
############################################################
octave> shapecentroid(shape)
ans =
-341.38 -264.10
############################################################
The values are negated.
Any clues?
Rafael
More information about the Pkg-octave-devel
mailing list