From glynn.clements@virgin.net Wed Dec 12 19:13:35 2001 Return-Path: Received: from camelot.itc.it (camelot [195.223.171.5]) by artemide.itc.it (8.11.3/8.11.3) with ESMTP id fBCIDX728309 for ; Wed, 12 Dec 2001 19:13:33 +0100 (MET) Received: from mta2-svc.virgin.net (mta2-svc.virgin.net [62.253.164.42]) by camelot.itc.it (8.11.3/8.11.3) with ESMTP id fBCIDWd06840 for ; Wed, 12 Dec 2001 19:13:32 +0100 (MET) Received: from cerise.nosuchdomain.co.uk ([62.252.69.31]) by mta2-svc.virgin.net (InterMail vM.4.01.02.27 201-229-119-110) with ESMTP id <20011212181330.PKYR10663.mta2-svc.virgin.net@cerise.nosuchdomain.co.uk> for ; Wed, 12 Dec 2001 18:13:30 +0000 Received: (from glynn@localhost) by cerise.nosuchdomain.co.uk (8.11.6/8.11.6) id fBCIAC301072; Wed, 12 Dec 2001 18:10:12 GMT From: Glynn Clements MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15383.40324.300167.67864@cerise.nosuchdomain.co.uk> Date: Wed, 12 Dec 2001 18:10:12 +0000 To: Markus Neteler Subject: Re: affine transform In-Reply-To: <20011212165039.B4313@itc.it> References: <20011212165039.B4313@itc.it> X-Mailer: VM 6.94 under 21.4 (patch 4) "Artificial Intelligence (candidate #1)" XEmacs Lucid Status: RO Content-Length: 986 Lines: 26 Markus Neteler wrote: > by chance I have found another implementation for affine > transform (or whatever there is implemented): > src/libes/vect32/libes/transform/ > It is used in v.digit and maybe other programs. > > Is this a candidate for the GMATH library? > I think yes. The code there seems fairly specialised. The transformations are affine, but the means of generating the coefficients seems rather odd; in particular, the requirement that at least four reference points are provided. Three points will define an affine transformation; any more are either redundant or contradictory. If it were to go into the gmath library, it might be better for compute_transformation_coef() to return the resulting transformation in a gmath "mat_struct". transform_a_into_b() and transform_b_into_a() are largely redundant; they're either just a matrix multiplication (if using homogeneous coordinates) or multiply-and-add (otherwise). -- Glynn Clements