Hello,
I've been using Point3D in TeeChart Pro version 6 for VCL/CLX, in Delphi 7. It comes CLOSE to what I'd like, and perhaps the new Bubble3D comes even closer or is an example I can use to build my own descendant. What I'd like is to have a 3D graph I can slice up in, say, 100 "units" per x, y, z axis, where in theory you'd have your one graphical "cube" dividable into one million smaller cubes. So the empty graph looks like any other 3D space, but when I fill in a "point" it is represented as one of the million small cubes.
I'm approximating it now with a square Mark in a Point3D series, with or without 3D shading on the mark. But I don't get appropriate depth (very apparent when I rotate the display at runtime) and even the 2D "face" sizing is a balance between being large enough to see and accurately representing "adjacent" cubes without gaps and without overlap. The point of the graph is specifically to highlight which of the cubes the data represents, and in most cases will be a contiguous space described within the volume of the maximum cube (e.g. a banana shape, or football shape). So empty cubes are invisible, but "activated" cubes are visible.
If each cube is the same color, I'm effectively graphing just "yes" or "no", was that cube "activated" by the data. But with shades or multiple colors I can give more information about that one small cube (e.g. how OFTEN or how LONG the cube was "activated" by the data). We're capturing the behavior of a system, such that at any point in time the system is "in" only one of those small cubes, but that over time will travel up and down that "banana" shape going from being "in" one cube to being "in" a cube next to it, so showing where the system was OFTEN compared to RARELY is useful. Anyway, I'm describing that just to help you visualize the image.
Given what I want, I see the new Bubble3D chart and think, "If it would make cubical 'bubbles' that might be just what I need!"
So that's my starting point, would I be able to use Bubble3D to display cubes, where the cube sizes correspond to dimensions on the axes?
Or is Bubble3D perhaps just a better chart than Point3D to descend from, if I'm going to have to build my own?
Or how would Steema go about creating such a variant, can I talk to anyone in more detail about a customized chart?
Thank you!
Bubble3D, Point3D variant
-
- Site Admin
- Posts: 14730
- Joined: Mon Jun 09, 2003 4:00 am
- Location: Banyoles, Catalonia
- Contact:
Hi DataGord,
When using Point3D series with pointer HorizSize and VertSize with values greater than 1 its depth is still 1. However, that doesn't happen with Bubble3D which also has a radius value. Bubble3D is only included in TeeChart Pro v7. You can download its fully funtional evaluation version at http://www.steema.com/downloads/form_tch_vcl.html.
Another solution would be drawing custom cubes at TeeChart's canvas using Chart1.Canvas.Cube.
When using Point3D series with pointer HorizSize and VertSize with values greater than 1 its depth is still 1. However, that doesn't happen with Bubble3D which also has a radius value. Bubble3D is only included in TeeChart Pro v7. You can download its fully funtional evaluation version at http://www.steema.com/downloads/form_tch_vcl.html.
Another solution would be drawing custom cubes at TeeChart's canvas using Chart1.Canvas.Cube.
Best Regards,
Narcís Calvet / Development & Support Steema Software Avinguda Montilivi 33, 17003 Girona, Catalonia Tel: 34 972 218 797 http://www.steema.com |
Instructions - How to post in this forum |
Narcis,
Thanks for replying so soon. It sounds like Bubble3D has the depth feature I'd like, but that it would still show bubbles. I can try that to see if we don't mind shifting our visual expectation of "cubes". Is there a way to set the radius (or, if I make my own cubes, the lengths of each side, where a "rectangular solid" may be the result instead of a "cube") at runtime to be a proportional percentage of the axis as drawn? (E.g., if in one instance the chart has an axis 800 pixels long, then the side is 8 pixels, but in another version the axis is 200 pixels long, then the side is 2 pixels.) Is there a run-time value for the length of the axis? Wouldn't I also have to take into account the angle of the axis, so the cube is oriented in parallel on each side (which should automatically maintain even when rotating the graph, once drawn, right?)?
It sounds like, if I want cubes, I should customize my own chart. Would Bubble3D be a better choice to descend from, or would Point3D be just as good of a starting point, as far as features for doing the cubes?
Thanks again!
Thanks for replying so soon. It sounds like Bubble3D has the depth feature I'd like, but that it would still show bubbles. I can try that to see if we don't mind shifting our visual expectation of "cubes". Is there a way to set the radius (or, if I make my own cubes, the lengths of each side, where a "rectangular solid" may be the result instead of a "cube") at runtime to be a proportional percentage of the axis as drawn? (E.g., if in one instance the chart has an axis 800 pixels long, then the side is 8 pixels, but in another version the axis is 200 pixels long, then the side is 2 pixels.) Is there a run-time value for the length of the axis? Wouldn't I also have to take into account the angle of the axis, so the cube is oriented in parallel on each side (which should automatically maintain even when rotating the graph, once drawn, right?)?
It sounds like, if I want cubes, I should customize my own chart. Would Bubble3D be a better choice to descend from, or would Point3D be just as good of a starting point, as far as features for doing the cubes?
Thanks again!
-
- Site Admin
- Posts: 14730
- Joined: Mon Jun 09, 2003 4:00 am
- Location: Banyoles, Catalonia
- Contact:
Hi DataGord,
Sorry but I forgot to tell you that Bubble3D series can be squares just changing its pointer style as shown in the code below. Also you won't need to calculate each side size as it will be scaled according to chart's 3D percent. You can check that using the rotation functionality provided with TeeCommander component.
Sorry but I forgot to tell you that Bubble3D series can be squares just changing its pointer style as shown in the code below. Also you won't need to calculate each side size as it will be scaled according to chart's 3D percent. You can check that using the rotation functionality provided with TeeCommander component.
Code: Select all
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
ValueX, ValueY, ValueZ, Radius: double;
begin
Randomize;
Chart1.Chart3DPercent:=100;
Radius:=0.5;
for i:=0 to 1000 do
begin
ValueX:=random*100;
ValueY:=random*100;
ValueZ:=random*100;
Series1.AddBubble(ValueX,ValueY,ValueZ,Radius);
end;
Series1.Pointer.Style:=psRectangle;
end;
Best Regards,
Narcís Calvet / Development & Support Steema Software Avinguda Montilivi 33, 17003 Girona, Catalonia Tel: 34 972 218 797 http://www.steema.com |
Instructions - How to post in this forum |
-
- Site Admin
- Posts: 14730
- Joined: Mon Jun 09, 2003 4:00 am
- Location: Banyoles, Catalonia
- Contact:
You're welcome DataGord.
I hope v7 fits your needs.
I hope v7 fits your needs.
Best Regards,
Narcís Calvet / Development & Support Steema Software Avinguda Montilivi 33, 17003 Girona, Catalonia Tel: 34 972 218 797 http://www.steema.com |
Instructions - How to post in this forum |