
Show HN: Old School Graphics Algorithms - ArashPartow
https://www.partow.net/programming/bitmap/index.html
======
ggambetta
Lovely :) The examples remind me of the short programs for the ZX Spectrum
published in magazines like Microhobby, which would create visually
interesting images using PLOT, DRAW, and a couple of loops. Come to think
about it, that might have been my first contact with Computer Graphics :)

~~~
stevekemp
My first introduction to graphics was definitely the type-in-program listed in
the back of the (orange) manual I received with my 48k ZX Spectrum. It drew a
UK-flag.

Here's the source, which gives me a moment of nostalgia:

[http://boriel.com/wiki/en/index.php/ZX_BASIC:Flag.bas](http://boriel.com/wiki/en/index.php/ZX_BASIC:Flag.bas)

I wrote a simple BASIC interpreter recently, in golang, and hacked in support
for outputing PNG images of code. I should see if I can get that sample to run
(mostly) unchanged!

~~~
ggambetta
Nice! Some time ago I worked on a ZX BASIC interpreter in Javascript, so it
could run on browsers. My idea was that kids these days™ don't have an
environment as easily available and immediately gratifying as we did back
then, so I wanted to make one!

Have you considered doing something similar with yours?

~~~
stevekemp
I did embed it in a web-server, so that the user can enter BASIC into a
<textarea> and have the output rendered by their browser as an image. I called
it "visual basic" ;)

[https://github.com/skx/gobasic/#80-print-visual-
basic](https://github.com/skx/gobasic/#80-print-visual-basic)

Just a small example really of embedding, I suspect to make it really useful
for new-programmers it'd need a lot of overhaul.

When my child gets old enough I'll probably just give them a BBC-emulator, or
similar to get started with.

------
sliken
The reminds me of the the days before affordable color bitmap displays. I
wrote a unix program to render the mandlebrot set in greyscale. Then a VMS
program to render the greyscale image into postscript.

I was in a university lab with a 8 foot long laser printer that normally spit
out 200 pages per minutes or so with the first page being a giant ascii
rendering of your username. It made a cool _frewp_ noise with each page shot
out into a self collating set of shelves. The vast majority of the output was
just ascii.

My mandelbrot set kept the printer busy for a few minutes, the operator wanted
to reboot. I pleaded with them to leave it run. It finally spit out a page at
at least 300 dpi, everyone in the lab came to look and was amazed. Back in
those days rending a 3150x2250 part of the mandelbrot set was a substantial
amount of compute. These days something like that runs at 60 fps.

------
atum47
really cool, I usually draw my stuff on a JavaScript canvas, but I'll try to
port one of my codes to c++ using this. thanks for sharing

------
quintonish
It's fun to play around with the algorithms in JavaScript.
[https://codepen.io/collection/AkoojL](https://codepen.io/collection/AkoojL)

------
person_of_color
I did an OpenGL tutorial when it was basically a fancy state machine. Boy how
things have changed. Never found a good resource for modern graphics.

------
jmt_
Going to have a good time implementing a few of these myself. Any other
references/resources for neat graphics algorithms on the more compact side?

~~~
salgernon
Look for the original Graphics Gems I and II books (circa 1991)

[https://www.glassner.com/portfolio/graphics-
gems/](https://www.glassner.com/portfolio/graphics-gems/)

~~~
jmt_
Exactly what I was looking for you, thank you:)

------
dang
(This looks great but please don't put Show HN on reading material or
tutorials. See
[https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)
for the rules.)

~~~
klingonopera
...but it's his library? The tutorials on the page are just examples for the
library, which is linked at the top of the page?

Or rather: How would he present a "Show HN" topic about this specific library?
This is the library's actual page, as I understand?

~~~
dang
I missed that. Sorry! Title restored.

