我设置了两段折线,当x1<x<x2时用斜率1计算y值,当x2<x<x3时用斜率2计算y值,但用该全局脚本执行的话,发现x不做范围判断只按斜率1计算;如果把else if改为 if,则x只按斜率2计算,求如何解决
#pragma option(mbcs)
float x,x1,x2,y1,y2,y,x3,y3;int a,b;
x=GetTagFloat("FRQTEST_IN");
x1=GetTagFloat("FRQ_POINT1");
x2=GetTagFloat("FRQ_POINT2");
y1=GetTagFloat("PRS_POINT1");
y2=GetTagFloat("PRS_POINT2");
x3=GetTagFloat("FRQ_POINT3");
y3=GetTagFloat("PRS_POINT3");
if (x1<x<x2)
y=(x-x1)*(y2-y1)/(x2-x1)+y1;
else if (x2<x<x3)
y=(x-x2)*(y3-y2)/(x3-x2)+y2;
SetTagFloat("PRS_ALR_CAL",y);
return 0;
x1<x<x2在c语言里面相当于(x1<x)<x2这个效果吧,只要x1<x,前面结果是1,否者括号里面结果是0,然后x2再和这个结果进行比较
------------------这个问题还没注意过,以后使用长记性了,又学了一点小常识,谢谢
欢迎光临 工控编程吧 (https://www.gkbc8.com/) | Powered by Discuz! X3.4 |