0 概述

dislin是一个完全跨平台的绘图程序,它不需要其他任何依赖库。可以在cmd窗口下或者windows窗口下绘图,支持多种编程语言。支持8种字体,数学公式等。

1 下载安装编译链接

我是用在visual c++上绘图。

Distributions | Max Planck Institute for Solar System Research下载windows 32-bit和windows 64-bit。

然后解压缩,然后点击setup.exe安装。windows 10 smart screen 会提示说有风险,点击 仍要运行。安装在c盘dislin目录下。

然后设置环境变量path。添加c:\dislin目录。

visual studio项目设置:

1)项目-c\c++-常规,添加c:\dislin目录;

2) 项目-c\c++-代码生成,设置成/MTd;

Other Questions | Max Planck Institute for Solar System Research网站上说要设置成/MT,但是我的只能设置才/MTd才可编译成功。为啥?

3) 项目-链接器-输入添加disvc.lib,discpp.lib。

2 编程绘图

dislin有一个重要的概念,调用层级level 0, level 1, level 2等等。意思是有一些函数可以随时调用,而有一些函数必须按照预定的顺序进行调用,因为这些函数需要其他函数的信息。dislin将这种调用规定为层级。     

        0     before initialization or after termination;层级0:在初始化之前或绘图结束之后调用
      1     after initialization or a call to ENDGRF;层级1:在初始化或者endgrf调用之后
      2     after a call to GRAF, GRAFP or GRAFMP;层级2:在graf、grafp、grafmp调用之后
      3     after a call to GRAF3 or GRAF3D.;层级3:在graf3或graf3d调用之后

在DISLIN中,图形仅限于称为页面的矩形区域。在默认模式下,每厘米有100个点,而点(0,0)位于左上角。

     (0,0) +----------------------------------+
           |                                  |
           |                                  |
           |                                  |
           |        DIN A 4  Landscape        |
           |                                  |
           |                                  |
           |                                  |
           +----------------------------------+ (2969,2099)

通常,程序应具有以下结构:

     (1)页面格式,文件格式和文件名的设置
     (2)初始化
     (3)绘图参数设置
     (4)绘制轴系统
     (5)绘制标题
     (6)绘制数据点
     (7)终止。

C库使用int,float和char变量。实例程序DISHLP给出了C例程语法的详细描述,或者可以在头文件’dislin.h’中找到,该文件必须包含在所有C程序中。

               #include <stdio.h>
               #include "dislin.h"
               main()
               {
                 disini ();
                 messag ("This is a test", 100, 100);
                 disfin ();
               }

c++程序:

               #include <iostream>
               #include "discpp.h"

               main()
               { Dislin g;
                 g.metafl("XWIN");
                 g.disini ();
                 g.messag ("This is a test", 100, 100);
                 g.disfin ();
               }

1 metafl函数定义显示输出格式。

可以“BMP”、“GIF”、“PNG”等格式输出,也可以“XWIN”等显示器输出。XWIN输出窗口大小为屏幕的大约2/3。

2 disini函数初始化。

3 绘图

带有坐标轴的曲线用graf函数绘制。

graf (float xa, float xe, float xor, float xstp, float ya, float ye, float yor, float ystp);
XA, XE x轴的最小值和最大值.
XOR, XSTP x轴刻度标签起始值及间隔.
YA, YE y轴的最小值和最大值.
YOR, YSTP y轴刻度标签起始值及间隔.

平面曲线用curve绘制。

curve (const float *xray, const float *yray, int n);
XRAY, YRAY 是包含x和y坐标的数组。
N 为数据点的个数。

三维图形用graf3d和curv3d绘制。 语法与二维对应。

4 disfin函数结束绘制。

默认为黑白图形。

The default size of GIF, TIFF, PNG, PPM,  BMP,  IMAGE,  SVG, EMF and  virtual files  is set to 853 x 603 points but can be modified  with the routine WINSIZ. 

3 示例

 

 

		Dislin g;
		g.metafl("BMP");
		g.disini();
		g.line(0, 0, 2970, 2100);
		g.disfin();

 


版权声明:本文为novanova2009原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/novanova2009/article/details/86710013