Unterdessen hat es ein Update von MathGL gegeben.
https://mathgl.sourceforge.net/
Da die Pascal Bindung von mathgl, noch der Version 2.2 trägt, habe ich eine neue Bindung gemacht, welche zu 8.0 kompatibel ist.
Wen noch Interesse da ist, im Anhang habe ich die Bindung.
Hier noch ein kleines Demo dazu:
Code: Alles auswählen
program project1;
uses
fp_mgl2;
function sample(gr: THMGL; p: pointer): longint;
var
y0, y1, y2, y3: THMDT;
n: longint = 30;
begin
y0 := mgl_create_data_size(n, 1, 1);
mgl_data_modify(y0, '0.4*sin(2*pi*x)+0.3*cos(3*pi*x)-0.4*sin(4*pi*x)+0.2*rnd', 0);
y1 := mgl_create_data_size(n, 1, 1);
mgl_data_set(y1, y0);
y2 := mgl_create_data_size(n, 1, 1);
mgl_data_set(y2, y0);
y3 := mgl_create_data_size(n, 1, 1);
mgl_data_set(y3, y0);
mgl_data_smooth(y1, 'line3', 0);
mgl_data_smooth(y2, 'line5', 0);
mgl_data_smooth(y3, 'quad5', 0);
mgl_plot(gr, y0, 'k', '');
mgl_add_legend(gr, 'NONE', 'k');
mgl_plot(gr, y1, 'r', '');
mgl_add_legend(gr, 'LINE_3', 'r');
mgl_plot(gr, y2, 'g', '');
mgl_add_legend(gr, 'LINE_5', 'g');
mgl_plot(gr, y3, 'b', '');
mgl_add_legend(gr, 'QUAD_5', 'b');
mgl_legend(gr, 1, '', '');
mgl_box(gr);
mgl_delete_data(y0);
mgl_delete_data(y1);
mgl_delete_data(y2);
mgl_delete_data(y3);
Result := 0;
end;
procedure main;
var
gr: THMGL;
begin
gr := mgl_create_graph_qt(@sample, 'MathGL Example', nil, nil);
if gr = nil then begin
WriteLn('Fehler');
end;
mgl_qt_run();
mgl_delete_graph(gr);
end;
begin
main;
end.