Matlab

To illustrate the meaning of a Curved Spacetime I have created a number of matlab programs related to curved surfaces. Many of these programs are completely general and can be useful in other contexts.

Matlab to Povray

I have written a converter (a matlab script) that creates a PovRay file from a matlab generated three dimensional scene. PovRay is a free raytracer available online, at http://www.povray.org The converter is called rjmat2pov.m and is very simple to use. After running your matlab script to create a three dimensional image, type rjmat2pov('filename'), at the matlab prompt, and you will get a povray file called filename.pov that you may render as any other povray file. What rjmat2pov does is that it finds all the visible surface elements in the matlab scene, and divides them into the natural triangles that they are made of and makes a PovRay mesh2 object out of them. The colors and reflection properties are also translated although the translation of the reflection properties is rather approximate (different types of reflection properties are used). Any light sources are also translated from the matlab scene to the povray scene. There is plenty of room for improvement of this code. Unless there are very many surface objects and large colormaps it should work just fine however. Below, the converter and five necessary subfunctions are downloadable. Right-click the links and choose Save Link Target As ...

rjmat2pov.m
rjxoptions.m
setvalues.m
rjsurfacenormal.m
rjextendmat.m
rjfindlist.m

Put these in your matlab directory (or somewhere else in the matlab path) and you should be good to go. There may however be bugs in the program that I do not know of, and I take no responsibility for any problems that may arise through the use of this converter.

Matlab library

Below is a link to my current matlab directory of functions. Most of these functions are related to illustrations of surfaces. In particular the function "putonsurf" is useful for giving an appearance of a painted line on a base surface. There are 80 functions in the library (including the above linked files concerning Povray). Inserting these files into your own matlab directory (in the matlab path), and typing "help functionname" at a matlab prompt, will give you a description of the function "functionname". I however make no claims about the completeness of these descriptions.

Rjmatlab

Here is a link to a so called "tarred" version of the above linked matlab directory, which allows for downloading the library and the files therein as a single file.

rjmatlab.tar

While to the best of my knowledge all of the programs work fine, I take no responsibility for any problems that may arise through the use of these programs.

Matlab example

A short matlab code utilizing the putonsurf command can be found here. It produces the following image: