Solved

3D graphics components and/or library for Delphi

Posted on 2003-11-20
9
1,533 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
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
Ransomware: The New Cyber Threat & How to Stop It

This infographic explains ransomware, type of malware that blocks access to your files or your systems and holds them hostage until a ransom is paid. It also examines the different types of ransomware and explains what you can do to thwart this sinister online threat.  

 
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

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

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

Suggested Solutions

Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
Introduction The parallel port is a very commonly known port, it was widely used to connect a printer to the PC, if you look at the back of your computer, for those who don't have newer computers, there will be a port with 25 pins and a small print…
Along with being a a promotional video for my three-day Annielytics Dashboard Seminor, this Micro Tutorial is an intro to Google Analytics API data.
This Micro Tutorial demonstrates using Microsoft Excel pivot tables, how to reverse engineer competitors' marketing strategies through backlinks.

777 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