私のプログラムでは、開始色->終了色->開始色などから移動しようとしています。
私は自分のフレームワークコードからこのスニペットを書いていますが、質問はどの言語にも固有ではありません。
注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
forは、lerpedColor == endColor
次のcoutを取得したときに1回だけ起動されます
。startColor:132,152,184
endColor:152,219,255
lerpedColor:132,152,184
ここで、からの補間が1回だけ発生し、元に戻らないという問題は何ですか?