Hi folks, Here is an example using feDisplacement (animated) to apply nonlinear distortion to a brick pattern.
It works in IE/ASV and in Opera 9.5 (something). http://srufaculty.sru.edu/david.dailey/svg/distort.svg What it does is to overlay two gradients: one vertical one on top of a horizontal one within a group. The opacity of the vertical gradient is varied through SMIL. The gradients is then used as the basis for an feDisplacement for the bricks (that are built through script). I used two gradients to simulate a conic shape, though clearly a better conic approximation could be build through script (building rects with progressively wider linear gradients). It demonstrates that one can build gradients to provide a non-affine distortion of an image, however, a) using feDisplacement to deform a specified amount (as to use in morphing or in image scrambling) is a bit on the tricky side. You may note some kludges in the source, done to get everything to find the filter's rectangle. b) the deformation is applied to a virtual bitmap rather than to its associated vectors -- hence the resultant image loses its crispy vector flavor -- resulting in a sogginess that will be less pleasing than what some humans have come to expect from their SVG. -- Perhaps another smoothing filter applied over the top of it all could smooth out the rough edges a bit. cheers David At 07:05 AM 1/22/2008, you wrote: >On Tue, 22 Jan 2008 12:52:47 +0100, ~:'' ãããã¨ããããã¾ããã ><<mailto:j.chetwynd%40btinternet.com>[EMAIL PROTECTED]> wrote: > > > there's a simple Brick Pattern here: > > > <http://peepo.co.uk/temp/brick-pattern.svg>http://peepo.co.uk/temp/brick-pattern.svg > >You might want to remove the space in patternUnits="objectBounding Box". > > > feDisplacementMap may well be a possible route, however it does seem > > somewhat complex in the relation to the concept. > >Not sure that would be able to give true perspective correct images though. > > > On 21 Jan 2008, at 23:27, Frank Bruder wrote: > > > > Hi, > > > > would be great if full 3x3 matrices--without the third row implicitly > > set to [0 0 1]--were allowed for transform values. This would allow > > for perspective distortions. But I'm not sure if this wouldn't be too > > difficult for implementors since singularities (the horizon) would > > need to be dealt with, in case they become visible. > >Indeed the 2d transforms that are in SVG today are not capable of handling >this case. > > > There was a question before regarding perspective distortion of text. > > And I remember someone suggested using the filter primitive > > feDisplacementMap. But no solution for creating the correct image > > data to use for in2 was found then. Maybe this was resolved in the > > mean time. > >There are other tricks, for example drawing the image repeatedly (with >clipping) while varying the scale transform. >That would probably look a bit ugly though, possibly it could be smoothed >out a bit by using filters or masks. > >Cheers >/Erik > >-- >Erik Dahlstrom, Core Technology Developer, Opera Software >Co-Chair, W3C SVG Working Group >Personal blog: <http://my.opera.com/macdev_ed>http://my.opera.com/macdev_ed > ----- To unsubscribe send a message to: [EMAIL PROTECTED] -or- visit http://groups.yahoo.com/group/svg-developers and click "edit my membership" ---- Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/svg-developers/ <*> Your email settings: Individual Email | Traditional <*> To change settings online go to: http://groups.yahoo.com/group/svg-developers/join (Yahoo! ID required) <*> To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/

