プログラマーの卵の日記

備忘録になってます!小難しそうなことから超簡単なことまでやってます!!

【C++】なんか波で遊んでみたので備忘録

※補足

 サインコサインで遊んで出てきたものなので特に考えてないです。内容についても脳死で作ったものなので、とりあえずコードとgifの動画だけ出します。

 

パターン1

 

f:id:yutateno:20200310020427g:plain

 


////////////////////////////省略/////////////////////
float Sin_ZeroToOne(const int t_maxCount, int t_nowCount)
{
	int temp = t_maxCount * 2;
	return sinf(DX_PI_F / temp * t_nowCount);
}

float Cos_ZeroToOne(const int t_maxCount, int t_nowCount)
{
	int temp = t_maxCount * 2;
	return cosf(DX_PI_F / temp * t_nowCount);
}
////////////////////////////省略/////////////////////
	float SS[181];
	float CC[181];
	for (int i = -90; i <= 90; ++i)
	{
		SS[i + 90] = Sin_ZeroToOne(90, i);
		CC[i + 90] = Cos_ZeroToOne(90, i);
	}
////////////////////////////省略/////////////////////
	// メインループ
	while (!ScreenFlip() && !ProcessMessage() && !ClearDrawScreen())
	{
		for (int i = 0; i < 181; ++i)
		{
			if (i == color)
			{
				DrawPixel(i + 240, (CC[i] * 100) + 240, GetColor(255, 0, 0));
				DrawCircle(i + 240, (CC[i] * 100) + 240, 2, GetColor(255, 0, 0));
			}
			else
			{
				DrawPixel(i + 240, (CC[i] * 100) + 240, GetColor(255, 255, 255));
			}
		}

		for (int i = 0; i < 181; ++i)
		{
			if (i == color)
			{
				DrawPixel(i + 240, (SS[i] * 100) + 240, GetColor(0, 255, 0));
				DrawCircle(i + 240, (SS[i] * 100) + 240, 2, GetColor(0, 255, 0));
			}
			else
			{
				DrawPixel(i + 240, (SS[i] * 100) + 240, GetColor(255, 255, 255));
			}
		}

		color++;
		if (color > 180)
		{
			color = 0;
		}
////////////////////////////省略/////////////////////

 

 

パターン2

 

f:id:yutateno:20200310020155g:plain

 


////////////////////////////省略/////////////////////
    float c[181];
	float s[181];
	for (float r = -90.0f; r <= 90.0f; r += 1.0f)
	{
		float radian = ((r + 90.0f) / 2.0f) * (DX_PI_F / 180.0f);
		int i = static_cast<int>(r) + 90;
		
		c[i] = cosf(radian);
		s[i] = sinf(radian);
	}
////////////////////////////省略/////////////////////
	while (!ScreenFlip() && !ProcessMessage() && !ClearDrawScreen())
	{
		for (int i = 0; i < 181; ++i)
		{
			if (i == color)
			{
				DrawPixel(i + 240, (c[i] * 100) + 240, GetColor(255, 0, 0));
				DrawCircle(i + 240, (c[i] * 100) + 240, 2, GetColor(255, 0, 0));
			}
			else
			{
				DrawPixel(i + 240, (c[i] * 100) + 240, GetColor(255, 255, 255));
			}
		}

		for (int i = 0; i < 181; ++i)
		{
			if (i == color)
			{
				DrawPixel(i + 240, (s[i] * 100) + 240, GetColor(0, 255, 0));
				DrawCircle(i + 240, (s[i] * 100) + 240, 2, GetColor(0, 255, 0));
			}
			else
			{
				DrawPixel(i + 240, (s[i] * 100) + 240, GetColor(255, 255, 255));
			}
		}

		color++;
		if (color > 180)
		{
			color = 0;
		}
////////////////////////////省略/////////////////////

 

 

パターン3

 

f:id:yutateno:20200310021048g:plain

 


////////////////////////////省略/////////////////////
float Squared_ZeroToOne(const int t_maxCount, int t_nowCount)
{
	float temp = 1.0f / t_maxCount * t_nowCount;
	return temp * temp;
}
////////////////////////////省略/////////////////////
	float c[181];
	float s[181];
    float SQ[181];
	for (int i = -90; i <= 90; ++i)
	{
		SQ[i + 90] = Squared_ZeroToOne(90, i);
		c[i + 90] = cosf(Squared_ZeroToOne(90, i));
		s[i + 90] = sinf(Squared_ZeroToOne(90, i));
	}
////////////////////////////省略/////////////////////
	// メインループ
	while (!ScreenFlip() && !ProcessMessage() && !ClearDrawScreen())
	{
		for (int i = 0; i < 181; ++i)
		{
			if (i == color)
			{
				DrawPixel(i + 240, (c[i] * 100) + 240, GetColor(255, 0, 0));
				DrawCircle(i + 240, (c[i] * 100) + 240, 2, GetColor(255, 0, 0));
			}
			else
			{
				DrawPixel(i + 240, (c[i] * 100) + 240, GetColor(255, 255, 255));
			}
		}

		for (int i = 0; i < 181; ++i)
		{
			if (i == color)
			{
				DrawPixel(i + 240, (s[i] * 100) + 240, GetColor(0, 255, 0));
				DrawCircle(i + 240, (s[i] * 100) + 240, 2, GetColor(0, 255, 0));
			}
			else
			{
				DrawPixel(i + 240, (s[i] * 100) + 240, GetColor(255, 255, 255));
			}
		}

		color++;
		if (color > 180)
		{
			color = 0;
		}
////////////////////////////省略/////////////////////