※補足
サインコサインで遊んで出てきたものなので特に考えてないです。内容についても脳死で作ったものなので、とりあえずコードとgifの動画だけ出します。
パターン1
////////////////////////////省略/////////////////////
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
////////////////////////////省略/////////////////////
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
////////////////////////////省略/////////////////////
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;
}
////////////////////////////省略/////////////////////