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/
 

Reply via email to