ランダムも使えるようです

ランダムの書き方が分かったので紹介です。
スクリプトを続きに貼って説明してます。

結果の見本画像(グリッドは分かり易くする為に付けたもの)
y.jpg

色、ブラシサイズ、描画位置をランダムで組んでいます。
が、それぞれ制限をつけています。

色・・・青系
ブラシサイズ・・・10〜25
描画位置・・・横は6分割の中4つ、縦は上半分のみ

np_canvas c = get_active_canvas();
np_image img = get_active_image();
np_layer l = get_active_layer(img);
int w = get_width(img); //キャンバスの幅を取得
int h = get_height(img); //キャンバスの高さを取得

// 描画位置の指定用
int ww = w / 6 ;
int hh = h / 2 ;

// 要素数の設定
int pw = ww * 4 + 1 ;
int ph = hh + 1 ;

for (int i = 0; i < 20 ; ++i) {

np_rgb col;
col.r = rand() % 101; // 0〜100 までの乱数
col.g = rand() % 181; // 0〜180 までの乱数
col.b = rand() % 101 + 155; // 155〜255 までの乱数
set_select_color(col);

// ブラシサイズランダム
int b = rand() % 16 + 10; // 10〜25 までの乱数
set_brush_size(b);

// 描画位置ランダム
int i = rand() % pw + ww; // 横6分割の中心4つの範囲を乱数
int v = rand() % ph ; // 0〜縦半分 までの乱数

draw_line(c, i, v, i +2, v +0);

}


******************

col.r = rand() % 101; // 0〜100 までの乱数 これの
「101」という数字は要素数と言うらしいのですが、
つまり101個の中からランダムで選んでくれということです。

col.b = rand() % 101 + 155; // 155〜255 までの乱数 こっちの意味は
数字は0から使われるので、155以上にするには
0〜100の数字をランダムで出した後に+155 する必要があります。

尚、これは20回の繰り返しにしていますが、
実行後のキャンバスを見ると20個もありません。
マウスで一度クリックをすると分かるのですが、
猫ペはその場でクリックしても描画されないんですよね(汗)
1ドットでもよいからずらす必要があります。
そしてこれはブラシサイズによっては1ドットでは無理だったりもします。
同じブラシサイズでも、1ドットで描けるときと2ドット必要な時があったり。
ブラシサイズが大きければ大きいほど、このブレも大きくなるようです。
posted by むらせ at 2010年11月27日 13:13 | スクリプト | このブログの読者になる | 更新情報をチェックする