スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Pixiaでグラデーション作成【わけがわからないよ】

さっきからさっきまでPixiaでグラデーション画像を作るために検索やら試したりやらしていたのですが、

できない。


できません。
[G]ってなに!?!?そんなのないよ!?

わけがわからないよ。

で適当に弄ってたのですが、できました。
…いつの間にかできてました。

(あくまで2色でのグラデーションですが)



こう用意してから
グラ1


根本の色にしたいので塗る!!
グラ2

そしたら「トーンフィルタ」で
グラ3

好きなの選んでOK!!
グラ4

2つ目の色選んで塗りつぶす!!!
グラ5
グラ6


んで連打で濃くなる。
グラ7



_人人人人人人人人人人人_
> !!!楽しい!!! <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄

スポンサーサイト

C++のラムダ式でクロージャ

なぜかGoogle先生で「C++ クロージャ」を検索してもあまり簡易な説明が出てこなかったので、
「簡易な説明」を書こうと思いましたよ。

ここは「クロージャ」の概念を何か勘違いした筆者の恥晒しの場です。
鵜呑みにしないでください。


なおクロージャとは「レキシカルなスコープを持つ関数」のことです。
int main(){
int i = 10;
auto func = [&](){ return i+i; };
}

int main(){
int i = 10;
auto func = [&](){ i = 20; };
}

このような「関数の外界に干渉や読み取りを行うことのできる関数」を言います。
(ちなみにC++での参照キャプチャは推奨されていません。)




以下鵜呑みにしてはいけないゾーン。




この記事でわかること
・C++でのクロージャの方法(簡易)
・C++でのラムダ式の使い方(簡易)


クロージャ、これだけです。
int main(){
int i = []{ return 10; }();
cout << i << endl; // 10
}



Oh, The Closure...
It's so Beautiful...。



参考にさせていただいたサイトは
http://cpplover.blogspot.jp/2009/11/lambda.html
様です。
ありがとうございます!


以下ラムダ式のなんとなく的補足。

[]{
/* 処理 */
};

がラムダ式と言われるもので、
しばしば無名関数と呼ばれます。
つまり関数です。
これに「()」をつけることで実行してます。
関数だって()つけると実行されるじゃん。ねっ。

[]{
cout << "これでこれが出力されます。" << endl;
}();

ねっ☆

あいやがポインタについてなんか言ってます。


いつも「*p」←をポインタって言ってるけど、 *←がポインタなのではなくて、 pがポインタ変数なんだよね。 「*」は間接アクセス演算子、ポインタ自体ではない。
返信
リツイート
お気に入りに登録
開く
ポインタスター☆あいや ‏@aiya000 11月18日


これがわかってればポインタは友達だね。
返信
リツイート
お気に入りに登録
開く
ポインタスター☆あいや ‏@aiya000 11月18日


「p」は他の場所のアドレスを格納する変数、 他の場所のアドレスを表すものに 他の場所へアクセスするためのものを付加すると 他の場所へアクセスできる。
返信
リツイート
お気に入りに登録
開く
ポインタスター☆あいや ‏@aiya000 11月18日

つまり*p1と*p2があったとして、 p1の値がアドレス0x0001、 p1の値がアドレス0x0002。 0x0002にあるデータが「10」だとすると、 *p1 = *p2 で行っていることは 0x0001 = 10。
返信
リツイート
お気に入りに登録
開く
ポインタスター☆あいや ‏@aiya000 11月18日

そして p1 = p2とすると、 p1 = 0x0002になる。
返信
リツイート
お気に入りに登録
開く
ポインタスター☆あいや ‏@aiya000 11月18日

aという変数が0x0003にあったとして、 *pに0x0003を入れたいならば、 p = &aとする。 そうすると&aが0x0003に変換されて代入される(イメージ)。
返信
リツイート
お気に入りに登録
開く
ポインタスター☆あいや ‏@aiya000 11月18日

ところがポインタ宣言と混ざると段階層がズレるから最初の頃は混乱する。 int型ポインタpを宣言しつつ代入しようとすると int *p = &a になる。
返信
リツイート
お気に入りに登録
開く
ポインタスター☆あいや ‏@aiya000 11月18日

これ、そもそも int* p = &a; と書いておけばわかるかもしれない。 int*「p = &a」; int型pにaのアドレスを代入、と。
返信
リツイート
お気に入りに登録
開く
ポインタスター☆あいや ‏@aiya000 11月18日

あとは&aつまりpの持つ場所に値を書き込みたいならば、 間接的にアドレスにアクセスするための演算子「*」を付加するだけ。 *p = 10; printf("%d\n", a); // 10
返信
リツイート
お気に入りに登録
開く
ポインタスター☆あいや ‏@aiya000 11月18日

ダブルポインタはポインタ変数のアドレスの値が持つアドレスにアクセスするための演算子、 つまりダブルポインタはpのアドレス(仮に0x0004とでも)を受け入れる箱。
返信
リツイート
お気に入りに登録
開く
ポインタスター☆あいや ‏@aiya000 11月18日

int** pp = &p; printf(**pp);
返信
リツイート
お気に入りに登録
開く
ポインタスター☆あいや ‏@aiya000 11月18日

トリプルポインタでアドレスppなら ppp = &pp;
返信
リツイート
お気に入りに登録
開く
ポインタスター☆あいや ‏@aiya000 11月18日

いえすっ!!おーけー!! 。
返信
リツイート
お気に入りに登録
開く
ポインタスター☆あいや ‏@aiya000 11月18日

私のおかしいリスト

・Ubuntu 10.04でのTweetVim(動作はするが関数が見つからない等のエラーが多発する)
・Visual C++ 2012でのfstreamでread関数を使用した後にwrite関数を使おうとするとおかしくなる。seekgでなんとか対処できるところは対処。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。