Solved

3D graphics components and/or library for Delphi

Posted on 2003-11-20
9
1,633 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
  • 2
  • +1
9 Comments
 
LVL 27

Expert Comment

by:kretzschmar
ID: 9787532
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
ID: 9789747
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
ID: 9789796
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
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 27

Expert Comment

by:kretzschmar
ID: 9789826
>graphic support in Delphi rather poor.

this i would not say
-> see the game age of wonders
0
 
LVL 27

Expert Comment

by:kretzschmar
ID: 9789855
0
 
LVL 2

Expert Comment

by:odissey1
ID: 9789868
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
ID: 9792483
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
ID: 9795695
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
ID: 9799328
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

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

The uses clause is one of those things that just tends to grow and grow. Most of the time this is in the main form, as it's from this form that all others are called. If you have a big application (including many forms), the uses clause in the in…
Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
Attackers love to prey on accounts that have privileges. Reducing privileged accounts and protecting privileged accounts therefore is paramount. Users, groups, and service accounts need to be protected to help protect the entire Active Directory …

739 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