Solved

3D graphics components and/or library for Delphi

Posted on 2003-11-20
9
1,484 Views
Last Modified: 2012-05-04
I am looking for a mathematical or graphical library that provides Delphi components or function enabling creation of 3D graphics in Delphi.
Practically, I have a large set of x,y,z data that I need to 'plot' in 3D.
If the library includes tools to 'smooth' the result, it would be nice
0
Comment
Question by:LeTay
  • 3
  • 3
  • 2
  • +1
9 Comments
 
LVL 27

Expert Comment

by:kretzschmar
Comment Utility
hi again,

you may find some librarys at
http://www.delphi-gems.com/Graphics.php

examine also there the graphics-menu (there is more)

meikl ;-)
0
 
LVL 3

Expert Comment

by:Mamouri
Comment Utility
Hi!
You will not find any related library or component in delphi!

But there is a lot of libraries for C. you can find a dozen of theme here:

3D Modeling:
http://sourceforge.net/softwaremap/trove_list.php?form_cat=109

3D Rendering:
http://sourceforge.net/softwaremap/trove_list.php?form_cat=110

there is a project name Quakk II. it is converted project of quack popular 3D game from original C code. search in sourceforge and you will find it! take a look at it, too!

Regards
0
 
LVL 2

Expert Comment

by:odissey1
Comment Utility
Hi LeTay,

There are good news and bad news. Bead one: I was searching for a 'beefy' commercial library for 2 years (price was not important) - seems there is no such thing in Delphi like 'commercial+professional 3D library'. Good news TeeChart Pro from Steema.com is available for ~$100. It includes 3D and 3D_OpenGL. Also very easy to use - practically no code. TeeChart (standart version) is also included in Delphi (see Additional Tab). You may check first if it support 3D (sorry - I can not do this since TCPro installation overrides the standard TC).

Now questions: 1. now large is your data set?  2. is this regular x,y rgid (like a matrix 100x100 points each having Z value)? Or this is a set of (x,y,z) points (like geological data)? 3. How fast do you want to plot them. Do you want real-time data (rotation/zooming)? 4. Do you want 'closed' surface (example: thorus) or you want map-like?
5. Do you want top-view only (map) or all X, Y, Z axes visible?

The unswer which way to go depends on those 1-5 questions. Since I checked many of the libraries I can, probably,  suggest the right one. NONE of the libs I know can accomplish all 1-5. Sorry - graphic support in Delphi rather poor.

If your requirements are simple 2D grid I can, probably, provide some free code (do not expect it to be short :).

Regards,
odissey1  


 
0
 
LVL 27

Expert Comment

by:kretzschmar
Comment Utility
>graphic support in Delphi rather poor.

this i would not say
-> see the game age of wonders
0
Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

 
LVL 27

Expert Comment

by:kretzschmar
Comment Utility
0
 
LVL 2

Expert Comment

by:odissey1
Comment Utility
Hi kretzschmar,

I know. But seeng the graphic program always 2 time slower than a similar written in C++ is depressing.
I have no clue why I still do it in Delphi?

regards,
odissey1
0
 
LVL 3

Expert Comment

by:Mamouri
Comment Utility
odissey1 I thinkit is not true. both Delphi and C++ for 3D Drawing use of some libraries like OpenGL or DirectX.

The Speed of Rendering depend to speed for DirectX and OpenGL not to a programming languages.

Regards
0
 

Author Comment

by:LeTay
Comment Utility
Dear Odissey1
In a first stage, the data may just be x,z (without y) and so a simple 2D curve.
Number of points in one sample may be I think between 10.000 and 100.000.
It is "regular" in x-axis (x1,x2,... delta x the same), but it is geological-like : the z contains noise that needs to be eliminated (smoothed)
Off-line run so no problem of speed in theory
If axis y comes in the story, probably only a few y values. (so let's say 10 sets of sample x,z for 10 regular values of y) Closed surface view welcome in this case
0
 
LVL 2

Accepted Solution

by:
odissey1 earned 250 total points
Comment Utility
Hi LeTay,

From your post it seems that TeeChart (TChart) is Ok for you.

Again, there are 2 approaches exist (the difference is speed). The data either could be presented as matrix
x&z are equidistant, so data look like
1 1 1 2 3 1
1 1 2 2 5 8
1 0 0 1 2 1
1 1 1 1 0 0
0 0 0 1 1 2

or ALL (x,y,z) point sets are irregular like
(1,1,0)  (2,5,1)  (7,4,0)  (7,6,6)  (1,1,0) ....

No library supports partially-regular data (X-regular, Z-irregular). So you must consider your data as 'irregular grid'.


Actually, the TChart covers both. It is not very fast with huge arrays (3D array of 1000x1000 will take ~5 sec to plot) You may download demo program from:

screenshots
http://steema.com/products/teechart/gallery.html

exe-demo with all features:
http://www.teechart.net/files/vcl/public/TeeChartPro6/tee6new.zip

Trial versions:
http://www.steema.com/download/TeeChart_v6/index.htm

Free trial version works while IDE. Price with academic discount ~$120.

How-to:

with TCart, you simply add 3D series  to Chart via TC Editor and then iterate through your data:

procedure TForm1.Button1Click();
...
Series1.AddXYZ(x1,y1,z1);
Series1.AddXYZ(x2,y2,z2);
....

or for i:=0 to 1000 do
Series1.AddXYZ(x[i],y[i],z[i]);

And thats All!
This may be good starting point. Ask Q if any.

Regards,
odissey1
0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

In this tutorial I will show you how to use the Windows Speech API in Delphi. I will only cover basic functions such as text to speech and controlling the speed of the speech. SAPI Installation First you need to install the SAPI type library, th…
Introduction Raise your hands if you were as upset with FireMonkey as I was when I discovered that there was no TListview.  I use TListView in almost all of my applications I've written, and I was not going to compromise by resorting to TStringGrid…
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, Just open a new email message.  In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now