自定义函数中使用的参数,是来自于集算器的,各类数据类型所对应的Java对象和上一节中介绍的相同。在调用自定义函数时,要注意参数类型要静态方法中的参数匹配。
特别的,序列是集算器中最常使用的数据类型,在自定义函数中,除了返回序列作为结果,同样可以使用序列类型的参数。如:
public static Double distance6(com.raqsoft.dm.Sequence seq1, com.raqsoft.dm.Sequence seq2) {
int len1 = seq1.length();
int len2 = seq2.length();
double x1 = len1 > 0 ? ((Number) seq1.get(1)).doubleValue(): 0;
double x2 = len2 > 0 ? ((Number) seq2.get(1)).doubleValue(): 0;
double y1 = len1 > 1 ? ((Number) seq1.get(2)).doubleValue(): 0;
double y2 = len2 > 1 ? ((Number) seq2.get(2)).doubleValue(): 0;
double len = Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
len = Math.round(len*1000)/1000d;
return Double.valueOf(len);
}
自定义函数distance6计算平面直角坐标系中两个点之间的距离。在调用时,两个点的坐标需用序列类型的参数传入。如:
|
A |
1 |
[1,1] |
2 |
[3,3] |
3 |
=invoke(test.Calc01.distance6,A1,A2) |
计算后,A3中的结果如下: