在我的程序中,我試圖從一開始就去開始顏色 - >結束顏色 - >開始顏色等等。從一種顏色到另一種顏色的插值
這個問題不是特定於任何語言,雖然我從我自己的框架代碼寫這個片段。
注: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";
從最初的起始色到結束我的色彩插值顏色發生的很好,但是這不會從最終顏色回到星星顏色回來。
的if condition
爲lerpedColor == endColor
當我得到以下COUTS被觸發一次:
startColor:132152184
ENDCOLOR:152219255
lerpedColor:132152184
什麼錯在這裏說的插值僅發生一次又不回來?
Whak是一種「lerpedColors」嗎?考慮到沒有傳遞給你的lerp函數的startvalue,我認爲你的線性插值是不統一的。 –
第一次後,'if condition'被觸發,lerpedColor始終爲(132,152,184),startColor始終爲(132,152,184)。請參閱我的文章的末尾 – user1240679
很難說沒有看到lerp()函數的主體有什麼問題... –