Heh - sometimes it takes a relative tome of justification to arrive at a simple 
explanation!

However the beauty of Bézier curves is that arcs are just a small subset of 
what they can represent 'well enough'.

For moving along an arbitrary (Bézier - you can represent a straight line 
segment as one trivially) path, what you actually need is first the length of 
the path (annoyingly not a representable function - iirc) and a parametric form 
of a Bézier curve (which is how they are best expressed).

Then to step along the path at fixed distance at each step you use f(n * 
fixeddist / length) (here f is the parametric form of the Bézier - returning a 
2d point). You'd need some adjustment (+/- 1 pix) to account for rounding error 
- but I think the idea is sound.

Warmest Regards,

Mark.

Sent from my iPhone

On 2 Aug 2017, at 22:18, hh via use-livecode <use-livecode@lists.runrev.com> 
wrote:

>> Mark wrote:
>> So, at the level of the graphic object it is a true arc, at the level of 
>> instructing
>> the graphics library it is a Bézier approximation but at the level of 
>> working out what
>> pixels to render it is a polygon.
> 
> Thanks for arriving from your previous post at this very clear statement.
> You will have to do a lot of such approximations by simple polygons when you 
> implement
> to move along an SVG path for your SVG widget... ;-)
> 
> p.s. The 360 points of Mark are really good enough for very large circles in 
> order to
> move along such points in 2 seconds. These are 3 points per tick!
> _______________________________________________
> use-livecode mailing list
> use-livecode@lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription 
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode


_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to