Delphi操作surfer绘图的方法,由谁知道的?哥们我送大量的分。
谢谢各位大哥大姐了。

解决方案 »

  1.   

    看样子这个问题还是有难度的,没有人能够回答。
    Delphi通过控制surfer绘制等值线图的方法,知道通过OLE方式控制Word&excel,但是控制surfer来绘图,就靠大家了。兄弟在这里万分的感激,为止兄弟加大分值到200分待问题的解决,开题提名给分。
      

  2.   

    你可以到Surfer的官司方网站上找些VB的例子看看,这对你有帮助,主要是用Surfer和Delphi的人不多,同时两者都会的人更少了,而且用Delphi开发Surfer的就更.....!
      

  3.   

    我有一篇这方面的文章,是PDF格式的,怎么样给你!
      

  4.   

    unit surfer3;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs,ComObj, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}
    procedure TForm1.Button1Click(Sender: TObject);
    var
      SurferApp,plot,shapes,ContourMapFrame,ContourMap,levels:Variant;
    begin
      SurferApp:=CreateOleObject('surfer.Application');//打开Surfer
      SurferApp.visible:=true;//显示Surfer窗口
      SurferApp.WindowState:=1;//主窗口最大化
      plot:=SurferApp.Documents.Add(1);//生成一个空白的绘图页
      Shapes:=Plot.Shapes;//获取plot文档对象的绘图元素对象集合
      SurferApp.GridData(DataFile:='H:\生成数据\20F-eff.txt',Algorithm:=2,DupMethod:=2,ShowReport:=False,OutGrid:='H:\生成数据\20F-eff.grd',
      xMin:=0,xMax:=800,yMin:=0,yMax:=200);//对原始数据进行网格化,同时确定插值方法
      SurferApp.GridSplineSmooth(InGrid:='H:\生成数据\20F-eff.grd',nRow:=0,nCol:=0,
      OutGrid:='H:\生成数据\20F-eff-smooth.grd');//对网格化数据样条平滑处理
      ContourMapFrame:=plot.Shapes.AddContourMap('H:\生成数据\20F-eff-smooth.grd');
      ContourMap:=ContourMapFrame.overlays.item(1);
      ContourMap.smoothcontours:=4;//平滑等值线
      ContourMap.FillContours:=true;//设置等值线填充
    end;end.{这是简单的代码,只需要一个Button组件即可}共同讨论啊