Sivakatirswami wrote:
OK... this leads to larger, more fundamental questions on video sprit
still animation of any object, be it pan-zoom photo or just any
object moving across the screen:
Since screens are made of pixels, I always thought that a "sub-pixel"
position was a "vikalpa" (the horn on the hare, the cheese in the
moon -- a idea that has no basis in reality) But if indeed you are
correct that the reason e.g. Flash animation is so smooth, is because
movement is calculated across sub-pixels points, then this means that
one might try, for example:
set the topleft of image 1 to 1.121,12.675
This just doesn't work in Rev... nothing happens, no error and no
change in the image loc
As for a zoom function, in Rev. I think we can only address video
pixels as whole integers and that screen positions really are never
more than whole integer pixel positions, in any context...
Well, you can set the rect of an image to non-integer values (see your
code below for an example :-)
I'm sure it gets rounded to an integer pixel when rendered - but using
the rect does allow you to avoid handling the rounding yourself.
Can anyone improve on the smoothness of this zoom function, just
import an image into any stack and add this buttondddddddddddd
on zoomIn
repeat 50 times
set the rect of image 1 to (zoomIn(the rect of image 1))
wait .5 millisecond
end repeat
# this is not too bad depending on the "continuoustoneness" of the
jpg.. the more "edges" the more pixelated the zoom appears.
I'm not sure there is any value in using a time period below 1
millisecond (in fact, I'm not sure it does).
end zoomIn
function zoomIn tRect
subtract 1 from item 1 of tRect
subtract 1 from item 2 of tRect
add 1 to item 3 of tRect
put ( (item 3 of tRect-item 1 of tRect) * tRatio) + item 2 of tRect
into item 4 of tRect
return tRect
end zoomIn
This won't work so well for non-square images.
The width increases by 2 on each step, so 100 total, keeping properly
centred.
But for a tall skinny image (say 4 times as high as it is wide), this
means the height goes up by 8 on each step - but the top changes by only
1 pixel, so the bottom moves down by 7. And conversely for a wide,
shallow image.
For images that are close to square, this "drift" won't be obvious - but
I think it will make the zoom less smooth.
You can avoid that by calculating the revised height, and then centering
that around the height.
function zoomIn tRect
put tRect into saferect
subtract 1 from item 1 of tRect
add 1 to item 3 of tRect
put ( (item 3 of tRect - item 1 of tRect) * tRatio) / 2 into
tNewHalfHeight
put (item 2 of tRect + item 4 of tRect) / 2 into tNewCentre
put tNewCentre - tNewHalfHeight into item 2 of tRect
put tNewCentre + tNewHalfHeight into item 4 of tRect
put saferect && tRect & cr after msg
return tRect
end zoomIn
Sivakatirswami
On May 15, 2006, at 1:19 PM, Wally Rodriguez wrote:
The Ken Burns effect, as used in other applications, has to be
calculated on a sub-pixel level so that it does not look jerky, that
is because some combinations of start point, size and speed could
yield sizes or motion that can't be rounded to one pixel.
There must be a way to do this smoothly on the mac, since the screen
saver does it, but I couldn't even start to tell you how.
_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your
subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution
--
Alex Tweedly http://www.tweedly.net
--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.392 / Virus Database: 268.5.6/340 - Release Date: 15/05/2006
_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution