你在学习编写横断面二次开发时,经常会看到语句:USE <?>QPREXT.QPC 。使用它这是为了满足某些特殊的要求,而实现这些要求的函数块集成到这一*.QPC文件里。因为一般用户看不到其中代码,所以将其中函数用法的帮助帖出来,希望对大家有帮助。
**************************************************************
* 函数调用方法:
* 1 - 数组:实参需要用中括弧括起来 [实参]
* 2 - 从函数中需要返回的值:参数也需要用中括弧括起来,如字符串
* 转换为实数函数StrToDbl调用方法:
* StrToDbl "123.456"[abc][Code]
**************************************************************
| 实数串转换为数 Code >0时转换成功,否则源串有错误
| !Text ->实型数字符串
| Value <- 返回的数值
| Code <- 如果转换成功则值为1,否则为 0
StrToDbl !TextValueCode
| 字符串中字符替换,Sum为替换的数目
| !Text <-->字符串,需要按照传址方式调用
| !SRC -> 需要替换的源字符,1字节长的字符串,长度大于1时自动为第一个字符
| !OBJ -> 目标字符,1字节长的字符串,长度大于1时自动为第一个字符
| Sum <- 被替换的数目
ReplaceChar !Text!SRC!OBJSum
| 从行串中读取指定字段 Code = 1 成功,Code = 0失败
| !Text -> 字符串,其中包含被空白分隔的多个字段
| ColNo -> 字段序号 >= 1
| !Out <- 返回的字段字符串
| Code <- 1 - !Out中值有效,否则无效
GetFieldStr !TextColNo!OutCode
| 文件打开 Handel = 0 失败 Handle >0 成功
| 在QPR文件运行结束后可自动关闭
| !Text ->文件名
| ReadOrWrite ->0 - 读 1 - 写 2 - 追加
| Handle <- 返回的文件号 >0 成功 ==0 打开失败
OpenFile !TextReadOrWriteHandle
| 从文件当前行读入实数到数组 返回 -1 严重错误 0 - 数据格式错误 1 - 成功
| 实际数组维数根据数据文件中数据量确定
| Handle ->用OpenFile命令打开的文件的有效句柄
| Array <- 数值型数组变量名
| Sum<- 数组中有效的数据个数
| Code <- -1 不可恢复的I/O错误 0 - 数据行中有非数值型字段 1 - 成功
| Code = 0时,Sum为发生转换错误的字段序号
ReadArray HandleArraySumCode
| 在文件当前位置写入字符串
| Handle ->用OpenFile命令打开的文件的有效句柄
| !OutStr->需要输出的字符串
| NewRow ->0 - 输出字符串后不换行 1 - 输出字符串后换行
| Code <- <0 不可恢复的I/O错误,否则为输出的字符数
WriteStr Handle!OutStrNewRowCode
| 关闭已经打开的文件
| Handle ->用OpenFile命令打开的文件的有效句柄
| Code <- 0 - 句柄非法 1 - 成功关闭
CloseFile HandleCode
| 修改文件的CARD/1说明信息,需要在文件存在后调用
| !FileName ->文件名
| !BezNote ->文件描述信息
FileInfo !FileName!BezNote
| 向点数据库写入点:如果该编号的点不存在,则创建它;
| 如果存在,则可修改其位置及编码
| !PointNo ->要写入的点编号
| xxyyzz ->点的三维坐标
| Kode ->点的编码
| Code <- 返回码,1 - 成功 其他值 - 失败
SavePoint !PointNoxxyyzzKodeCode
|计算点到轴线的投影坐标
|IA ->轴线号
|EE,NN ->已知点横纵坐标
|OS <- 返回投影桩号
|OY <- 返回投影横坐标<东>
|OX <- 返回投影纵坐标<北>
|Code <- 返回码 0 --- 成功 其他值代表失败
Project IAEENNOSOYOXCode
不过好像函数Project不能用,所以只好自己写了。求算点到线的最短距离,可能你会马上想到二分逼近的方法,不过这种方法太慢了,等不起啊。
你可以采用另外一种方法,就是分不同的单元进行判断,直线、圆以及缓和曲线采用不同的算法。一般来说,求点到轴线的距离时,参与计算的单元数目不会太多。首先用CALL函数找出各个单元的信息,存放在数组中,然后对每个单元计算,最后进行比较。
点与直线距离计算,采用计算点与直线组成的三角形为依据,海伦公式计算面积,用面积除以直线长度再乘以2就得到三角形的高,此高即是点与直线的垂直距离。海伦公式:p=(a+b+c)/2 '周长的一半,area=sqr(p*(p-a)*(p-b)*(p-c)) '面积,dist=2*area/c ;接着判断垂足是在直线上还是直线的延长线上。
点到圆的距离计算,判断点与圆弧的两种位置关系:一是点在圆弧的扇形区域内,二是在扇形外。第一种情况,点到圆弧的最小距离等于点到圆心距离与圆半径之差的绝对值;第二种情况,最小距离为点到圆弧两端点距离中最小的值。
点到缓和曲线的距离,暂时还采用二分,哪位高手有好办法请指教。
不好意思 之前没有看很清楚 我帮你找了 QPC是一种铃声格式,主要用于三洋手机。目前没有看到哪个播放器可以播放它,但是可以用三洋自带的光盘将它转换为其它格式。 用一款软件可以把QPC文件转换为MP3形式
去下软件,格式工厂(Format Factory),很好用
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)