在我的程序中,我试图从开始颜色 - >结束颜色 - >开始颜色等等。
尽管我是从自己的框架代码中编写此代码段,但这个问题并不特定于任何语言。
注意:lerp modifies the color
同时getLerped returns new value
startProgram(){
ofColor startColor; //set as 152,219,255
ofColor endColor; //set as 132,152,184
ofColor lerpedColor = startColor;
float colorShift = 0.01f;
}
//在我的程序中每帧连续触发的函数内部
if(lerpedColor == endColor){
endColor.set(startColor);
startColor.set(lerpedColor);
lerpedColor.set(startColor);
cout<<"Swapping end color"<<"\n";
cout<<"Start Color: "<<ofToString(startColor)<<"\n";
cout<<"End Color: "<<ofToString(endColor)<<"\n";
cout<<"Lerped Color: "<<ofToString(lerpedColor)<<"\n";
}
lerpedColor.lerp(endColor,colorShift);
cout<<"Lerped color"<<ofToString(lerpedColor)<<"\n";
我从初始开始颜色到结束颜色的颜色插值很好,但这不会从结束颜色返回到星颜色返回。
当我得到以下 couts 时, if condition
forlerpedColor == endColor
只被触发一次:
startColor: 132,152,184
endColor: 152,219,255
lerpedColor: 132,152,184
这里出了什么问题,插值只发生一次而不是回来?