Message: 13 Date: Sun, 30 Mar 2003 14:24:39 -0800 To: [EMAIL PROTECTED] From: "Jeanne A. E. DeVoto" <[EMAIL PROTECTED]> Subject: Re: Button vs. Message box scripts; P.S. Invert matrices? Reply-To: [EMAIL PROTECTED]
At 6:54 AM -0800 3/28/03, Jim Hurley wrote:On mouseUp revrotatepoly graphic "MyPoly", 90 end mouseUp
return an error: "Chunk source is not a container."
The problem here is that revRotatePoly needs an expression that evaluates to a graphic reference, not a graphic reference itself. (This is for complicated reasons having to do with the fact that revRotatePoly is a Transcript library routine.) This will work:
revRotatePoly the long ID of graphic "MyPoly",90
Jeanne,
Following your instructions I went into the RR toy box of back scripts to find the code for revRotatePoly. There are some strange things there. I do not understand "revPoints" at all. It seems to be a whole new kind of source for value. But ignorance is bliss and, using your suggestion about using the long ID I came up with the following version of revRotatePoly which seems to work in buttons.
on mouseUp revRotatePoly2 "myGraphic",45 end mouseUp
on revRotatePoly2 pGraphic, pAngle
lock screen -- Add this line
put the long ID of graphic pGraphic into pGraphic --Add this line
--put the topLeft of pGraphic into tTopLeft # Delete this line
put revPoints(pGraphic) into tPoints
put the loc of pGraphic into tLoc
pr tLoc
put sin(pAngle * (pi / 180)) into tSinAngle
put cos(pAngle * (pi / 180)) into tCosAngle
put (number of items of tPoints) div 2 into tNumItems
repeat with i = 1 to tNumItems
put (item (i + (i - 1)) of tPoints) into tCurrentH -- + item 1 of the center
put (item (i + i) of tPoints) into tCurrentV -- + item 2 of the center
--Use "round" instead of trunc in the lines below
put round((tCosAngle * tCurrentH) - (tSinAngle * tCurrentV)) into tTempH
put round((tSinAngle * tCurrentH) + (tCosAngle * tCurrentV)) into tTempV
put tTempH + (item 1 of tPoints) into tCurrentH
put tTempV + (item 2 of tPoints) into tCurrentV
put tCurrentH,tCurrentV & comma after tFinalPoints
end repeat
delete last char of tFinalPoints
set the points of pGraphic to tFinalPoints
-- set the topLeft of pGraphic to tTopLeft # Delete this line
set the loc of pGraphic to tLoc -- Add this line
unlock screen --Add this line
end revRotatePoly2I found that resetting the graphic loc at the end did less violence to the position of the graphic after rotation but this may be a matter of preference.
Also, using round rather than trunc maintains the shape of the graphic a little better. Doing 8 rotations of 45 degrees with trunc does alter the shape.
Regards,
Jim -- Jim Hurley _______________________________________________ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
