RE: [GD-DEVEL] Re: plotting data c++

[email protected] ("Bill Frost")
Newsgroups php.gd.devel
Message-ID <002701c864dc$5e6cf200$ab00a8c0@BillFrost>
Hi guys,

This has always sounded to me like an ideal gdLib application.

I had a bit of spare time today and I was intrigued by the problem. I dug
out some existing C++ code and modified it a bit and it now plots Patolfo's
data points as a square wave in JPEG format. If I keep the number of samples
at 256 but vary the number of terms from a high, such as 128, a square wave
is generated. If the number of terms is then set low, such as 8, a
sinusoidal-square wave is generated. Looks nice as a curved plot!

Selecting 256 samples with 128 terms runs in 0.093 seconds on a Centrino, as
gdLib / C++ is very fast.

Note that it is a utility, not a GUI application. It runs Padolfo's test
data application and opens the file using the operating system's default
JPEG handler (typically Windows Picture and Fax Viewer).

It:

* runs the sample algorithm,
* saves the sample data to a file and closes it (normally user-supplied)
* re opens the file
* extracts all data into a class, finding max and min values
* sets up a device context in gdLib, with some scaling
* creates the JPEG and thumbnail
* iterates the class and plots each x, y to a pixel
* scales and labels the axis


I've just fixed a rather embarrassing buffer overrun and I need to do a
little code clean up and make the JPEG slightly more aesthetic. Then I'll
post the source as a royalty free utility (seeing Padolfo wrote the main
algorithm!) as an example of using gdLib. Comments welcome once I have done
this as I am by no means an expert on gdLib and I still don't really know
what FFT is all about.

Cheers,

Bill

-----Original Message-----
From: Patolfo [mailto:[email protected]] 
Sent: Thursday, 31 January 2008 10:15 AM
To: Bill Frost; [email protected]
Subject: [GD-DEVEL] Re: plotting data c++

ok guys here is the problem again, i am plotting x,y data, floats to be 
precise, must be in C, C++, the hardway, no perl or python just know how 
to us perl a little, the idea is to have the application data to do the 
approximation of a square wave by means of fourier series, the job is 
done, now the problem is the gui, well i tried tk with perl and 
everything went smootly, till the part of converting perl to C, and 
including the interpreter and all that stuff, truly i did not get it 
right so it freezes and is buggy, so well back in track i found my self 
on the same road, just C, the gui I plan to do them with windowsapi they 
are the lesser problem, mingw, but the plotting data per se is the
biggest problem, i tried reading the wiki for libgd, and let me tell you 
it is not for noobs, or at least not for the dumbest as me.

The algorithm says more or less:
number or harmonics, number of data points, using gui, some routines, 
and then we have and arbitrary number of data with a max value of 1 and 
the minimum of 0, arranged in pairs of x,y,

i have the suspicion it is straightforward, but i seem to fail, i am 
still googling, found koolplot, which i think uses libgd, did not work 
for my mingw, so, any directions where to look...

-- 
GD Devel Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.