The example on this page attempts to show, not just how to create an image in FriCAS but also how to use it with other programs.
I wanted to make the image on the right to illustrate the topology of projective space discussed on this page. We can use FriCAS to generate a parametric surface. In this case, for all x,y then z=x*y We can do this by using the following SPAD code: |
This code generates the 3D surface and also a 2D grid which we can use to texture the surface. | )expose SCartesian )expose SArgand )expose SConformal )expose SceneIFS )expose SceneNamedPoints )expose STransform )expose SBoundary )expose ExportXml DF ==> DoubleFloat PT ==> SCartesian(3) xyfn(x:DF,y:DF):DF == x*y view := boxBoundary(sipnt(0,-500)$PT,sipnt(1200,500)$PT) sc := createSceneRoot(view)$Scene(PT) tr2 := addSceneTransform(sc,identity()$STransform(PT))$Scene(PT) gd := addPlot2Din3D(tr2,xyfn,-1..1,-1..1,49)$Scene(PT) writeX3d(sc,"projectiveSpace.x3d") PT ==> SArgand view2 := boxBoundary(sipnt(0,-500)$PT,sipnt(1200,500)$PT) sc := createSceneRoot(view2)$Scene(PT) gd := addSceneGrid(sc,view2)$Scene(PT) writeSvg(sc,"grid.svg") |
First we use a program called Inkscape to convert the grid from a SVG file to a PNG file. (that is convert from a vector format to a raster format)
In Inkscape
Start Inkscape
open grid.svg
export it as grid.png
We now import this into Blender and do the following:
In Blender
Start blender and remove default cube | |
select camera view | |
import projectiveSpace.x3d file | |
rotate shape so we can see the corners starting to move together. | |
Now select the object and add material to it | |
remove spectial effects | |
select material and add texture | |
create new image and animation | |
open (not new) file: grid.png | |
in Render tab Set alpha channel
|
|
Render | |
Further Information
- User Tutorial on this page.
- Tutorial2 - conformal space.
- User Reference on this page.
- Programmers Reference on this page.
- The code is in file: scene.spad.pamphlet which is available from here.
- Existing Axiom graphics framework on this page.