グラデーションの計算まではだいたいわかったつもりですが
始点と終点のカラーが表示したい色と別のものになってしまうのです。
あと始点と終点の情報を逆にしても色が違っているので見てもらえないでしょうか
環境はVC++2010でコマンドプロンプトでやってます
void line_3(int x0,int y0, int c0, int x1,int y1,int c1, Ps * bb)
{
int color_d = 0;//カラー情報用
double cd = 0;//カラー計算用
//1回のカラー増加量を計算
double date = (double) (c1 - c0) /(double)(x1 - x0);
cd = (double) c0;
for(int x = x0; x < x1 ; x++)
{
//バックバッファに入力
color_d = (int)floor(cd);
bb->back_buffer[x][y0] = 'B';
bb->bb_color[x][y0] = color_d ;
//次のカラーの計算
cd += date;
}
}