Re: Any more bugs/typos? Vladimir Nikishkin 17 Sep 2020 06:04 UTC

>which it isn't--(draw-bezier vec1 vec2) is a valid call)

It is required, or at least I meant it to be required. For simple
straight lines, (draw-line) is a reasonable choice.
I think Bezier curves can be reduced to straight lines in the
two-point case, but I am not exactly sure of the math.
So at least three points, two knots and a control point are required.
Moreover, adding additional points (as in 5 arguments) does not turn a
cubic Bezier into a quartic Bezier in the sample implementation, but
does some evil image-magick trickery (ImageMagick explicitly warns
against using 5 points).

>(draw-bezier vec1 vecI ... vecN)

I wanted to use an ellipsis, but ellipsis seems to have some special
meaning in Scheme (at least in the macro definitions), which I am not
as familiar as I should be. If it is fine, I will replace the bracket
notation with the ellipsis.
The brackets I took from man pages, where it usually denotes
"optional", and the asterisk means "0 or more times" almost
everywhere.

On Thu, 17 Sep 2020 at 13:49, Wolfgang Corcoran-Mathe <xxxxxx@sigwinch.xyz> wrote:
>
> On 2020-09-17 12:00 +0800, Vladimir Nikishkin wrote:
> > Is it fine to use the [vecI]* notation, or there is a more common one in Scheme?
>
> The [vecI]* notation is unfamiliar to me.  Is it used in other SRFIs,
> or elsewhere?
>
> The new version,
>
>     (draw-bezier vec1 vec2 [vecI]* vecN),
>
> seems a little misleading, since vecN appears to be required (which it
> isn't--(draw-bezier vec1 vec2) is a valid call).  If the double-bracket
> version mentioned earlier seems ugly, I recommend:
>
>     (draw-bezier vec1 vecI ... vecN)
>
> --
> Wolfgang Corcoran-Mathe  <xxxxxx@sigwinch.xyz>
>
> "A LISP programmer knows the value of everything, but the cost
> of nothing." --Alan J. Perlis

--
Yours sincerely, Vladimir Nikishkin