/* ============================================================ //

// 以下のタグの間に，学籍番号と氏名を記してください．
<ID>M0103396</ID><NAME>松元　崇  </NAME>

// 以下のタグの間に，タイトルを記してください．
<TITLE> 炎 </TITLE>

// 以下のタグの間に，“企画”を200〜400字程度で記してください．
<DESCRIPTION>
ガスなどが燃えてものすごい温度になっている炎を表現したものです。強い炎で作った料理はおいしい。
中華料理などではそういったイメージを持った人が多くいると思います。
このことから今回はとても強い火力のガスコンロを企画しました。
ガスコンロの力を表現するのにはシンプルに炎の力を表現することがメッセージがストレートに伝わると重いこの作品を作りました。
</DESCRIPTION>

// ============================================================ */

//
// プログラム２のソースコード （提出用）
//
import jp.ac.teu.media.*;

public class M0103396 extends TMLib {
	final static int vsize = 480;

	public static void main(String [] args) {
		begin(new M0103396(), vsize, vsize);
	}



	public void Main() {
		int x, y,R, G, B;
		double X, sX, wX, dX, Y, sY, wY, dY, Z1, Z2, Z3;
		TMLibImage	img = new TMLibImage();
		img.newImage(vsize, vsize);

		// *** BEGIN WINDOW *** //

		sX = -500;
		sY = -500;
		wX = 1000;
		wY = wX;

		// *** END WINDOW *** //

		dX = wX/(double)vsize;
		dY = wY/(double)vsize;

		for(x = 0; x < vsize; x++){
			X = sX + dX * (double)x;

			for(y = 0; y < vsize; y++){
				Y = sY + dY * (double)y;

				// *** BEGIN YOUR PROGRAM *** //

				Z1 =Y*Math.tan(X)-Y+(100.0 * Math.sin(X*Math.PI/180.0) + 127.0);
				Z2 = X*Math.cos(X)-Y;
				Z3 = X*Math.sin(X)-Y;

				R = (int)Z1 % 256 +(int)Y;
				G = (int)Z2 % 256-(int)Y/20;
				B = (int)Z3 % 256-(int)Y/10;

				// *** END YOUR PROGRAM *** //

				img.setRGB(x, y, R, G, B);
			}
		}

		drawImage(0, 0, img);
		img.writeImage("M0103396.bmp");
	}
}
