검색어 입력폼

visual C++ Sin 함수 그리기

저작시기 2006.05 |등록일 2007.05.14 한글파일한글 (hwp) | 4페이지 | 가격 2,000원

소개글

visual C++ 6.0을 이용해서 sin함수를 그리는 프로그램입니다.

3개의 sin 함수가 랜덤으로 그려지구요.

각각의 sin 함수마가 선굵기, 선색, 선모양등이 다르게 출력이 됩니다.

목차

<주요코드>
1. sin 그래프 그리는 함수
2. Rectangle() 함수 - 사각형 그리는 함수
3. Text()함수 - 화면에 텍스트 출력하기
4. OnNewDraw() 메시지 핸들러
5. Random 함수 - 랜덤값 만드는 것..
6. Serialize()함수

<실행화면>
<Discussion>

본문내용

void CRandomSinView::DrawSin()
{
CRandomSinDoc* pDoc = GetDocument();
CClientDC dc(this);
CPen pen, *pOldPen;
CRect rect;
GetClientRect(&rect);
COLORREF m_colorPen = RGB(255, 0, 0);
LOGBRUSH logBrush;
logBrush.lbStyle = BS_SOLID;
logBrush.lbColor = m_colorPen;
pen.CreatePen(PS_DASH|PS_GEOMETRIC, 1, &logBrush);
pOldPen = (CPen*)dc.SelectObject(&pen);
double height = (rect.top)+((rect.bottom)/2);
srand(time(NULL)+hit);
double x = (int)((rect.right)*10/100);
int y1,y2;
int width = ((rect.right)*90/100);
for(x; x<=width; x++)
{
y1 = (pDoc->magnitude[0]*sin(x*pDoc->phase[0]))+height;
y2 = (pDoc->magnitude[0]*sin((x+1)*pDoc->phase[0]))+height;
dc.MoveTo(x,y1);
dc.LineTo(x+1,y2);
}
dc.SelectObject(pOldPen);
}

다큐멘트 클래스와 연결하기 위해 객체를 생성하고 펜 객체를 생성하고 윈도우 화면 크기를 구하기 위해서 CRect 클래스에서 객체를 생성한다. srand(time(NULL)+hit)); 는 rand()함수를 매번 실행할 때마다 다른 난수표를 사용하기 위해서 srand()를 먼저 호출하는데 인수로 시스템의 시간을 인수로 줬다. hit는 시스템의 시간이 한순간에 같을 수 있으므로 hit 값을 더해서 틀리게 하기 위해 더해줬다. for 문 안은 sin함수에 magnitude 값을 곱해서 sin함수의 크기를 변경했고, phase값을 곱해서 sin함수의 위상값을 변경했다. magnitude 값과 phase 값은 다큐멘트 클래스에서 랜덤값으로 받아와서 사용하였다.
다운로드 맨위로