2011-11-12 4 views

答えて

3

GLubyteに気づくdidntは単に次のように定義される。

typedef unsigned char GLubyte; 

したがって、変換は実際には問題ありません(をご覧ください)。 "unsigned charは0から255までの10進数を表すことができる"ため、 "範囲外"の値を除いて、 "基本" (int)(x+0.5)の背後にいくつかの考えられるアプローチを提供する。要するに、符号なし整数として表現できない浮動小数点値をどうするかを決める必要があります。

スライダーで0〜255の値が得られると言えますから、問題はありません。

1
static_cast<GLubyte>(floatNumber * 255.f); 

私は..そう答え上記乗算を除去.. UISlider範囲は既に0から255の間である

static_cast<GLubyte>(floatNumber); 
+1

C++演算子はObjective-C++を書かない限りおそらく助けにならないでしょう... –

1

スライダーがすでに0-255の範囲で設定されている場合は、値を拡大縮小する必要はなく、タイプを変換するだけで済みます。このようなものがうまくいくはずです:

GLubyte component = (GLubyte)lroundf(slider.value); 
関連する問題