PGDRAW — draw a line from the current pen position to a point

PGDRAW – 从当前点绘制到一个指定点的线条

对应的C函数为 void cpgdraw(float x, float y);
               从当前位置绘制一个到坐标(X,Y)的线条。越出视口的将被裁减掉。
参数:
 X      (输入)  :线条终点的x坐标
 Y      (输入)  :线条终点的y坐标
测试了一下,关于当前位置,需要绘图,比如这次我们画到了(1.0,2.0),下次要画到另一个点,那么当前位置就是我们上次画到的(1.0,2.0)。
clip_image002

 

PGEND — close all open graphics devices

PGEND – 关闭所有打开的图形设备

对应的C函数为 void cpgend(void);
               关闭并释放所有打开的图形设备。所有的设备都应该调用PGCLOS (只对一个设备)或者在程序终止前调用PGEND。如果一个设备没有被妥善地关闭,那么可能会丢失一些图形输出。
参数: 

PGCIRC –draw a circle, using fill-area attributes

cpgcirc – 使用填充区域的属性绘制圆

对应的C函数为 void cpgcirc(float xcent, float ycent, float radius);
               画圆,这个函数用到了区域填充的设置。如果区域填充的类型是
SOLID (默认),那么圆的内部也是使用当前颜色索引solid的。如果填充类型是HOLLOW, 则只有圆(空心)的轮廓线条采用当前线条的属性(颜色索引、线条类型和线条宽度)设置。
参数:
 XCENT  (输入)  : 圆心的x坐标
 YCENT  (输入)  : 圆心的y坐标
 RADIUS (输入)  :  圆的半径

clip_image002

不能提前优化,或者define只比优化慢那么一点

程序长了,又因为提前做了一些优化,导致参数就不是正确的。

所以看来宏定义还是蛮好的,前面被老板批了一顿,定义宏太多,现在把宏定义直接改成计算好的数据,在尝试修改变量的时候就出现了,这样那样的问题。

应该考虑使用C++的const了,这几天看的心动的要把程序从c转成c++了,不错貌似工作量不小呀。

看看错误和正确的结果,相差甚远呀。

plot_dat

错误的结果。plot_error

 

另外,碰到了很诡异的too many unmatched PGSAVE bug提示,不晓得,怎么回事,google了一下,只有可怜的4个结果,还都不是我需要的,在研究研究PG吧。