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

I wrote my first Python program

20 January, 200920 January, 2009

Last Friday. Knowing almost no Python at noon, by 5pm I had some code to munge XML and do something useful for my current project. So it’s not bad. It’s good for productivity. Mostly because: It has useful libraries. Bread-and-butter data structures are built in, i.e. lists and dictionaries. I…

Read More

C++ Tuples: the missing functionality

6 April, 201530 June, 2015

C++ provides a strange mix of compile-time and runtime functionality for dealing with tuples. There are some interesting parts, like std::tie to destructure a tuple, and std::tuple_cat to join together several tuples into one. So there is evidence that the standard has been influenced by some functional programming ideas, but…

Read More

How to print anything in C++ (part 1)

1 February, 201530 June, 2015

Part 1 Part 2 Part 3 Part 4 Part 5 Postscript I thought I’d have a go at writing some code that could print things. A pretty-printer, if you like. What I want to be able to do is this: // Print x correctly, where x is ANY type. cout

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