DGraph 4D, by Chris Underwood CMU96 email: csuwz@csv.warwick.ac.uk www: http://www.csv.warwick.ac.uk/~csuwz Wanna trial? Do this: Double click the DGraph executable and click 'ok' in the command input box. Click the equation named 'Ripples'. Click the Hires/Laced button so it becomes 'Lowres'. Change the 'step' field to read '5'. Now click 'Render'. Isn't that pretty? Try someof the others if you like. Each equation SHOULD produce something pretty on the screen. If you like these, read on and find out how the rest of the program works. Explanation of the buttons: Buttons are stuff you can click on. Use the mouse (push it in the direction you want the pointer on the screen to move) to position the.. Hang on, you know how to use the mouse and what buttons are - here's what the controls actually do: Equation discriptions: With these you can select a predefined equation to draw. Due partly to tech dificulties with Amos and partly to my own lazyness you cannot enter your own equations in this version. If anyone really wants to draw their own equations then email me and ask for the source. You'll have to put up with a really smeggy text based interface though. The list of equations will change depending on the Dynamic checkbox. This is because the non-dynamic equations aren't usable as dynamic graphs. Basically, it stops you doing anything that would be meaningless. Dynamic A checkbox. Make it a tick to specify that you want to create a dynamic anim. Remove the tick to create single pictures. The dynamic button opens up some more stuff to specify. They are (indented): Vary 'n' from __ to __ 'n' is the dynamic variable. If you think of a 3D graph in terms of y=f(x,y) then a 4D graph is y=f(x,y,n). Mean anything? Probaby not, but it doesn't matter. This lets you specify the range to vary 'n' over. Frames Lets you specify how many frames to calculate. For most graphs, 20 to 40 is about perfect since they can be made to loop or ping-pong. dn/dt Lets you specify how the dynamic variable 'n' changes. Linear is like you'd expect - it changes by a precise amount per frame and that amount doesn't change from frame to frame. This is good for doing cyclic anims, or anims that could be used for actually measuring something. Sine will change the amount 'n' changes by each frame depending on where you are in the anim. At the start and end of the anim, the change is small. In the centre, it's a lot faster. This is ideal for anims that are to be played in ping-pong fashion (forwards, then backwards). DPaint 3 or above makes a particularly good job of this. Solid render A checkbox specifying the style of the render. If ticked, it will light source (with correct maths at last - cheers to Rich Neal for that one) the graph making it look like it has been ray-traced (well, if you've got a small enough step size anyway). If not checked, it will create a wireframe picture of the graph. This can still be animated (though doesn't impress in the same way). It also opens up a couple of new boxes: Hidden line removal Allows you to specify that you wish not to have hidden lines shown. Tick for line removal, don't for no line removal. Experiment with both - you'll form an opinion for yourself. Plot y=0 grid Plots a square grid at y=0. This serves little purpose other than to tell you where the graph is in 3D space. If the solid render is checked, a couple of other boxes need explaning: Light sourced Not sure about the origin of this one anymore (I did this prog quite a while ago now). Still, it seems to change from the old maths code that was quite wrong, to the new improved pretty stuff that Rich Neal came up with. This box also opens up some more stuff: Plot Check this if you want to see a visual representation of where the light source is supposed to be. Liek I've said - I didn't do all the maths for this bit so if it's wrong, bummer :) X, Y, Z. These define exactly where the light source is to be. It is a point source and is infinatly strong (it doesn't get weak with distance). It does work though and is reflected to you differently by different angled planes. Mode Use this button to change the screenmode. Hires Laced looks good, but will be more memory intensive (by a factor of 4) and will flicker on many moniters. It will also take up more HD space if animated (again, 4 times as much) and will probably animate that much slower. Lowres looks pooey (as it always did) but is fine for animations and low memory 'miggies. Try both - develop an opinion. Whatever :) Step A slider and input box for the step. Step of 10 is very quick. Smaller steps look better but take longer. 2 or 3 is nicest in my opinion. If you ask me for the source to DGraph 4D, specify if you want one that works for sizes 1 and 2 as well - there's a bug in Amos that stops small sizes working. The fix is very roundabout and is about 4 times slower than the buggy one. Angle Use this slider to specify the angle of the drawing. You may have noticed that the graph is not 3D, but an isometric drawing. Isometric means 30 degrees between horisontal and each axis. Change this angle and you can make some interesting effects... Try it. Render Hmmm, can't seem to remember what this does. Oh well, perhaps it does the render. Stranger things have happened. Bugs: Not a button - don't waste your time looking for it! If you find any bugs, feel free to email me and tell me, but don't expect much more than the original source back from me though. I'm not in control of the current source so there's nothing that I can do. You're welcome to the source I wrote though.If this program is unstable and crahses a lot, again, that's not my fault. I think most of that has been fixed now but I can never be sure. Ben Wyatt made this prog usable from a terible text interface, but in doing so he introduced some problems with stability. We fixed most of them I think so it should be good now. Still, there could be something wrong still. Feel free to email me for whatever reason, CMU