- 注册时间
- 2005-12-29
- 最后登录
- 1970-1-1
|
//------------- 4.19 更新 --------------------------//
重写了float.y里的 ftoa 函数,函数原型不变,主要做以下修正:
1.把以前显示十位有效数字改成了显示八位,主要是考虑到最后两位数字大多情况下是由于精度损失后造成的错数。以至于经常出现类似 1.01 输出为 "1.0100000XX" 的错误。
2.对浮点数进行分析后以不同形式输出,这点和以前的统统按科学计数法输出不同,具体输出形式如下:
当指数大于7次或小于-1次时以科学计数法形式输出,其余以浮点小数的形式输出。(同GVbasic里的小数输出规则)
所以: 1.0 ->"1" , 0.123 ->"0.123", 0.0123456 ->"1.23456e-2" , 12345.6789 ->"12345.679"
123 ->"123" , 123456789123456789 ->"1.2345679e+17" .... ....
//------------- 4.18 更新 --------------------------//
在float.y 新加入如下函数:
原型: long forml ( int type ,int formula , ... ) ;
功能:求含参量的混合运算表达式的值。
说明:
1.formula为指定格式的混合运算表达式,后面跟要参与运算的变量,变量的类型由格式符%进行说明:
%d 十进制整数;
%s 字符串表示的数值,可以是整数形式,如:"-100",也可以是小数形式,如:"3.14159";
%f 浮点型变量。
2.运算表达式目前支持以下运算浮:( ) -(负号)*/ +- > >= <= != == (优先级依次降低)。其中逻辑运算成立为浮点型的 -1 (0xbf800000), 不成立为浮点型的 0(0x00000000)。
以下表达式都是合法的:
"(3.6+%d)*%d"
"-%d*%d/3.14519"
"%d>=%d"
"%d+%d*(%d>0.5)"
... ....
3.type为函数的返回类型,定义如下:
'd' 整形, 'f' 浮点型, 's' 字符串地址。
4.18:小更新了下,更新的地方红字加亮,可以在表达式中直接写数字了,另外完善了负号的使用.
再就把type参数提前了,落在后面好象容易被忘掉^____^b
以后能写不定参数的函数了,真的很是高兴,再次感谢YAN的无私帮助!!
ps:下面的函数库是用YAN2.13编译器制作,已不被最新版本兼容,故不能使用.考虑到已被收录,就不作更新啦
//------------- 3.29 更新 --------------------------//
库名:refresh.y 作者:yoYohenry
原型:void RefreshPoint(int x,int y)
功能:以缓存区数据为背景画点刷新。
原型:void RefreshLine(int x0,int y0,int x1,int y1)
功能:以缓存区数据为背景画线刷新。
原型:void RefreshBox(int x0,int y0,int x1,int y1,int fill)
功能:以缓存区数据为背景画矩形刷新。
原型:RefreshShutt(int x0,int y0,int x1,int y1,int n,int type)
功能:以缓存区数据为背景在屏幕(x0,y0,x1,y1)范围内以百叶窗形式刷新。
说明:n为百叶窗每页宽度;type=0为纵向百叶窗,type=1为横向百叶窗。
新加入几个矢量刷屏函数,现在可以玩转艺术刷屏啦~
//------------- 3.24 更新 --------------------------//
库名:triangle.y 作者:yoYohenry
原型:int sin(int deg)
功能:计算sin(deg)的值。
说明:deg的单位是度,取-32767~-32767之间的整数(这里注意和Sin()的区别)。返回值是sin(deg)的小数值乘以1024(范围为-1024~1024)。
原型:int asin(int x)
功能:计算arcsin(x/1024)的值,单位:度。
说明:abs(x)>1024 时返回90(-90)度。
原型:int cos(int deg)
功能:计算cos(deg)的值。
说明:deg的单位是度,取-32767~-32767之间的整数(这里注意和Cos()的区别)。返回值是cos(deg)的小数值乘以1024(范围为-1024~1024)。
原型:int acos(int x)
功能:计算arccos(x/1024)的值,单位:度。
说明:abs(x)>1024 时返回0(180)度。
原型:long tan(int deg)
功能:计算tan(deg)的值。
说明:deg的单位是度,取-32767~-32767之间的整数。返回值是tan(deg)的小数值乘以1024,tan(90)返回0xfffffff。
原型:int atan(long x)
功能:计算arctan(x/1024)的值,单位:度。
说明:abs(x)>0xfffffff时返回90(-90)度。
下面是运行截图
NC3000上运行的速度检测
ps:感觉在运行速度和精准度上都还不错哈~ 另外在不涉及负数的情况下还是提倡使用系统自带的Sin()和Cos()两个函数,毕竟自定义函数在运行效率上和系统函数是没法比的。
//------------- 3.22 更新 --------------------------//
作者:yoYohenry
原型:long sqrt(long x);
功能:计算x的算术平方根。
说明:计算结果向零方向取整,负数返回-1。
这个是原math库里的sqrt函数速度检测
===================================================
作者:yoYohenry
原型:long cub(long x);
功能:计算x的立方根。
说明:计算结果向零方向取整。
//----------------3.21 更新----------------------------//
库名:digit.y 作者:yoYohenry
原型:void digset(char &digbuf[],char heigh);
功能:生成 8*heigh 的电子数字字模数据,配合函数digout2使用。
原型:void digout(int x,int y,int width,int heigh,int num,char type)
功能:在(x,y)处画 width*heigh 的电子数字(0~9)。
说明:此函数作矢量图,type=0 直接在屏幕作图,1在缓存区作图。优点:使用方便,可在程序中直接调用,且字模大小可任意;不足:由于是作矢量图,显图速度较digout2函数慢(1E-2s级)。
原型:void digout2(int x,int y,int heigh,char &digbuf[],char num,int type)
功能:在(x,y)处画 8*heigh 的电子数字(0~9)。
说明:此函数作向量图,使用前必须先用digset(digbuf[],heigh)生成大小10*heigh的字模数据,优点是显图快(1E-3s级),type含义见WriteBlock。
=================================
库名:TXTout.y 作者:yoYohenry
功能:与文本字符在屏幕显示的相关函数。
原型:void TextOut2(int x,int y,char &strbuf[],int type)
功能:类似TextOut的字符串显示函数。
说明:type的bit7=1:大字体,bit7=0:小字体
bit6为1时直接在屏幕上绘图,否则在缓冲区作图
★bit5为1时显示镂空字体
★bit4为1时显示加粗字体
[荐]可以同时镂空加粗哟
bit3为1时图形反显
bit2-0:1:copy 2:not 3: or 4:and 5:xor
原型:void msg(char &msgbuf[],int type)
功能:弹出信息框,字符串中支持换行符'\n',信息框居中显示,type 定义见TextOut2。
******分***隔***线******
以下为文段显示函数
原型:void TXTrange(int x0,int y0,int x1,int y1,int type)
功能:设置文段在屏幕显示的区域和文字显示参数,type 含义见 TextOut2。
说明:默认参数为(0,0,159,79,0x41)
原型:void Setlbreak(char lbreak,char len_lb)
功能:设置段落标记的第一字符和段落标记占的字节长度。
说明:默认参数为('\n',1)。常见的段落标记还有0x0D0A(如文本文件),可设为(0x0d,2)。
ps:字符(串)中的 \n会被编译为0x0A,占一个字节长度,如果要在字符串显示\n,应写为 \\\n。
原型:int TXTload(char &TXTbuf[],long TXTlen,int &lip[])
说明:载入要显示的文段信息,TXTbuf为文段信息开始地址,TXTlen为文本长度,lip[]用来存每行首文字的指针,函数返回文段总行数。
原型:void TXTout(int lCur)
功能:在区域(x0,y0,x1,y1)内以type类型从lCur行开始显示TXT文本信息。
================================
库名:time.y 作者:yoYohenry
原型:void gettime(struct TIME &t);
功能:读取系统时间,精确到1/255秒。
原型:long dsec(struct TIME &t1,struct TIME &t2,int &ms);
功能:求24小时内t1到t2的时间段长度,精确到0.01秒。
说明:所求时间长度单位为秒,函数返回其整数部分,ms存其小数部分。
[ 本帖最后由 yoyohenry 于 2008-4-19 20:50 编辑 ] |
评分
-
查看全部评分
|