visual C++ Sin 함수 그리기
- 최초 등록일
- 2007.05.14
- 최종 저작일
- 2006.05
- 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 값은 다큐멘트 클래스에서 랜덤값으로 받아와서 사용하였다.
참고 자료
없음