Skip to content
Why is a raven like a writing desk?

Thoughts both confusing and enlightening.

Why is a raven like a writing desk?

Thoughts both confusing and enlightening.

Curve and Vector

elbeno, 30 March, 200830 March, 2008

Curve (com.elbeno.curve) is my common lisp package for doing cool things with two-dimensional curves. In particular, modulating cubic Bézier curves and splines, but also approximating arbitrary elliptical and circular arc segments with cubic Bézier curves.

It depends on Vector (com.elbeno.vector), a cobbled together set of functionality for representing and manipulating points on the 2D Cartesian plane. It also depends on Zach Beane’s excellent Vecto, for ease of drawing. Both Curve and Vector are available under the GPLv3 license.

Download Curve
Download Vector

Currently both Curve and Vector are at v0.1.

Lisp Programming

Post navigation

Previous post
Next post

Related Posts

Approximating elliptical arcs with Bézier curves

29 March, 2008

In doing my modulation work with curves and ellipses, I extended the vecto function for drawing an ellipse to enable an oriented ellipse. Lately it occurred to me that this didn’t go far enough in terms of functionality, and I began wondering about how to draw part of an elliptical…

Read More

Doxygen and C++: <i>not</i> a marriage made in heaven

19 August, 200529 July, 2007

I briefly interrupt your scheduled browsing… Doxygen is a documentation system for C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors) and to some extent PHP, C#, and D. So it says on the website, and so it is. It’s also a Good Thing, most people would assume. Doxygen…

Read More

Do-notation can be misleading

13 August, 201430 June, 2015

Consider the following function: oddness :: Maybe Int oddness = do let a = Just 1 :: Maybe Int b >= \b -> return b And recall the definition of (>>=) for Maybe: instance Monad Maybe where (Just x) >>= k = k x Nothing >>= _ = Nothing So…

Read More

Comments (3)

  1. Zach Beane says:
    1 April, 2008 at 7:14 am

    CL-VECTORS also represents points as conses. I found I was able to get about a 25% speedup using a specialized two-element vector of double-floats, and declaring it appropriately for various operations.

  2. Pingback: Why is a raven like a writing desk? » Blog Archive » How many programming languages do you know?
  3. john_doe says:
    12 November, 2008 at 5:37 pm

    Why GPL3 ?! This is the sort of thing that renders Common Lisp utterly useless!

    The community is already small…and we have to fight to push Lisp…AND if a project can’t be business-friendly, then WE HAVE NO CASE!

    It’s widely known that if you want to spread technology then you must use a BSD-style license!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

©2026 Why is a raven like a writing desk? | WordPress Theme by SuperbThemes