Drawing a curved shape - 2nd attempt
Richard Gaskin
ambassador at fourthworld.com
Mon Feb 2 11:08:25 EST 2009
Graham Samuel wrote:
> Yes, but as the originator of this thread, what I'm after is drawing a
> curve from within a Rev-based standalone based on data which the
> program is handling, either generated by the program or input by the
> user, and then let the user print it out at full resolution. I would
> not want to licence Flash to get this functionality.
Understood. Jim Hurley replied to your post; my reply was to Andrew's.
Jim's Bezier control is an amazing piece of work, worth considering for
some applications. Being limited to Rev's graphic object primitives, it
won't print with the smoothness of a true Bezier, but may be helpful for
other some apps needing only screen display.
To clarify, I didn't mention Flex as the sole answer to this question
(and didn't mention Flash at all; don't much care for Flash myself). I
brought it up because it serves two purposes which may be useful here:
1. Those needing to ship vector-intensive apps right now may find Flex a
satisfying solution for the moment.
2. Driven by a very-high-level scripting language, the properties and
methods governing the Bezier objects in Flex may provide helpful
guidance for crafting a similar object in Rev.
Flex is quite rich. There may be much there worth borrowing from as we
consider ways to enhance Rev.
> It does seem a perfectly reasonable idea - even a simplified system
> which restricts the kind of curves you can draw would be better
> than nothing. I had assumed that Rev had the ability to draw
> vector-based curves via script but I couldn't find out how to do
> it, therefore I started this thread. I didn't expect the answer
> to be "you can't".
One of the challenges with any sole-source proprietary technology is
what to do when you hit a wall, when you find yourself with a need
that's neither addressed in the engine nor can be worked around
gracefully using combinations of existing engine-based primitives.
Beziers are such a case.
In such cases, the options are:
- Submit a request and wait for its implementation.
You could add your votes for this one here:
<http://quality.runrev.com/qacenter/show_bug.cgi?id=1511>
- Accept a compromise in your app's design and use a workaround,
such as the nifty scripting Jim Hurley contributed.
- Use another tool.
If there's a fourth option I've overlooked please help me out.
> Incidentally, what is the graphic style 'curve' actually for? I can't
> work out from the docs what visible properties it bestows on the
> graphic.
The "curve" style in Rev is misnomer held over from the HyperCard
nomenclature.
In HC, curve meant simply "freehand", meaning that you can move the
mouse wherever you like to make a line and it'll draw your points
accordingly. Since Rev also supports vector graphics, this was
translated to its graphic object styles without enhancement, so that it
draws a polygon with multiple points reflecting the path of the mouse.
But each point is just like any other polygon point, lacking the
metadata and UI to make the vertices behave like what might be a true
"curve" in other drawing programs, a Bezier.
For some uses the "arc" graphic style may be helpful, and they print
quite nicely. But without rotation even grouping sets of arcs together
will be a limited solution.
--
Richard Gaskin
Fourth World
Revolution training and consulting: http://www.fourthworld.com
Webzine for Rev developers: http://www.revjournal.com
More information about the use-livecode
mailing list