# Windows Console에 Sin,Cos 그래프 표시
using System;
class Program
{
public static void Main(string[] args)
{
CHKNM nmm = new CHKNM();
nmm.RUN();
}
}
class CHKNM
{
//Console Width, Heigth
int width = 0;
int height = 0;
//Math.Cos,Math.Sin's Value to mapping Console Screen Size
double mapx = 0.0;
double mapy = 0.0;
int toggle = 0;
int nextxpos = 0;
int end_degree_value = 360 * 2;
public void RUN()
{
width = Console.WindowWidth;
height = Console.WindowHeight;
//Dynamic array index possible
int[,] screenposition = new int[width,height];
for(int ii=0; ii<height; ii++)
for(int kk=0; kk<width; kk++)
{
screenposition[kk,ii]=0;
}
for(int degree = 1; degree < end_degree_value; degree++)
{
double radian = Math.PI * degree / 180.0;
double funcy = Math.Cos(radian) + 1.0;
mapy = height * 0.99 / 4.0;
mapx = Convert.ToDouble(width) / Convert.ToDouble(end_degree_value);
int ypos = Convert.ToInt32(funcy * mapy);
int xpos = Convert.ToInt32(degree * mapx);
if(ypos == height) continue;
if(xpos == width) continue;
if(toggle == 0)
{
toggle = 100;
nextxpos = xpos;
screenposition[xpos,ypos]=1;
}
else
{
if(nextxpos == xpos) continue;
else
{
screenposition[xpos,ypos]=1;
nextxpos = xpos;
}
}
}
#if(true)
string screenTxt = "";
for(int ii=0; ii<height/2; ii++)
{
for(int kk=0; kk<width; kk++)
{
if(screenposition[kk,ii] == 1) screenTxt += "*";
else screenTxt += " ";
}
screenTxt += "\n";
}
Console.WriteLine(screenTxt);
#endif
}
}
'c# 언어 > 중급과정' 카테고리의 다른 글
[Git] push 명령어로 local 변경 사항 원격 저장소에 반영하기(commit후에) (0) | 2024.01.25 |
---|---|
"파일"이라는 한글을 여러타입으로 저장후에 c언어에서 읽어서 출력해보기 (0) | 2024.01.23 |
현재 로칼 컴퓨터의 아이피 알아내기(ip.AddressFamily == AddressFamily.InterNetwork) (0) | 2024.01.06 |
'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. (0) | 2023.12.16 |
Installer/DefaultLocation 변경하기 (0) | 2023.11.22 |