-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Untested:
if intersect(rect1, rect2) then put the rect of rect1 into bigrect put the rect of rect2 into smallrect
if item 1 of smallrect < item 1 of bigrect then put item 1 of bigrect into item 1 of smallrect
if item 2 of smallrect < item 2 of bigrect then put item 2 of bigrect into item 2 of smallrect
if item 3 of smallrect > item 3 of bigrect then put item 3 of bigrect into item 3 of smallrect
if item 4 of smallrect > item 4 of bigrect then put item 4 of bigrect into item 4 of smallrect
set the rect of rect2 to smallrect end if
On Apr 6, 2005, at 6:16 AM, David Burgun wrote:
Ok, yes thanks, I was just about coming to the conclusion that this was the only way to achieve this. I looked at the "within" function/keyword which works on points, seems like it would be good to make this work with two objects, so you could write:
if within("UserRect","BoundingRect") then ......................... end if
I alsso looked at "intersect" which sort of does what I want, but doesn't make sure the whole Rect is within another Rect.
Guess it works just as well as a defined function tho, thanks a lot. I am playing with this now,
Thanks a lot Dave
sez [EMAIL PROTECTED]:Well, a rect is a four-number list, right? If UserRect is wholly containedGiven I have a "BoundingRect" and "UserRect", how can I check that "UserRect" is inside "BoundingRect"? If it overlaps I want to either clip the rectangle or stop it from moving outside of the BoundingRect in the first place.
within BoundingRect, the "left" value for UserRect will be equal to, or
greater than, the "left" value for BoundingRect; similarly, the "down" value for
UserRect will be less than, or equal to, the "down" value for BoundingRect; and
so on. Thus, what you want can be done by a function like this:
function ItsInside UserRect, BoundRect if item 1 of UserRect => item 1 of BoundRect then return false if item 2 of UserRect => item 2 of BoundRect then return false if item 3 of UserRect <= item 3 of BoundRect then return false if item 4 of UserRect <= item 4 of BoundRect then return false return true end ItsInside
If you wanted to, you could turn this handler's code into a one-liner by
combining the four comparisons, like so:
on ItsInside Ru, Rb
# mind the line-wrap!
return ((item 1 of Ru => item 1 of Rb) and (item 2 of Ru => item 2 of Rb)
and (item 3 of Ru <= item 3 of Rb) and (item 4 of Ru <= item 4 of Rb))
end ItsInside
Hope this helps... _______________________________________________ use-revolution mailing list [email protected] http://lists.runrev.com/mailman/listinfo/use-revolution
_______________________________________________ use-revolution mailing list [email protected] http://lists.runrev.com/mailman/listinfo/use-revolution
- ----------------------------------------------------------- Frank D. Engel, Jr. <[EMAIL PROTECTED]>
$ ln -s /usr/share/kjvbible /usr/manual
$ true | cat /usr/manual | grep "John 3:16"
John 3:16 For God so loved the world, that he gave his only begotten Son, that whosoever believeth in him should not perish, but have everlasting life.
$
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (Darwin)
iD8DBQFCU+wc7aqtWrR9cZoRAqW9AJ0W9B5xhtuzyZsdjJm5WEkaht3B/QCfaZ5q wnPAfSFbsap+n/gAZim8OM0= =LZAu -----END PGP SIGNATURE-----
___________________________________________________________ $0 Web Hosting with up to 200MB web space, 1000 MB Transfer 10 Personalized POP and Web E-mail Accounts, and much more. Signup at www.doteasy.com
_______________________________________________ use-revolution mailing list [email protected] http://lists.runrev.com/mailman/listinfo/use-revolution
