// LissajousView.cpp : CLissajousView クラスの実装
//

#include "stdafx.h"
#include "Lissajous.h"

#include "LissajousDoc.h"
#include "LissajousView.h"
#include "math.h"			//sin関数を使うために追加する	

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CLissajousView

IMPLEMENT_DYNCREATE(CLissajousView, CView)

BEGIN_MESSAGE_MAP(CLissajousView, CView)
	// 標準印刷コマンド
	ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CView::OnFilePrintPreview)
END_MESSAGE_MAP()

// CLissajousView コンストラクション/デストラクション

CLissajousView::CLissajousView()
{
	// TODO: 構築コードをここに追加します。

}

CLissajousView::~CLissajousView()
{
}

BOOL CLissajousView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: この位置で CREATESTRUCT cs を修正して Window クラスまたはスタイルを
	//  修正してください。

	return CView::PreCreateWindow(cs);
}

// CLissajousView 描画

void CLissajousView::OnDraw(CDC* pDC)
{
	CLissajousDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	// TODO: この場所にネイティブ データ用の描画コードを追加します。
	int	x, y;

	int f1 = 1, f2 = 2;		//f1とf2は周波数比
	
	double deg , pi = 3.1415/180;

	for (deg = 0; deg < 360; deg += 0.1){
		x = (int)(100 * sin(f1 * deg * pi))+120;
		y = (int)(100 * sin(f2 * deg * pi))+120;
		pDC->SetPixel(x, y, RGB(0, 0, 128));
	}
}

// CLissajousView 印刷

BOOL CLissajousView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// 既定の印刷準備
	return DoPreparePrinting(pInfo);
}

void CLissajousView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: 印刷前の特別な初期化処理を追加してください。
}

void CLissajousView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: 印刷後の後処理を追加してください。
}


// CLissajousView 診断

#ifdef _DEBUG
void CLissajousView::AssertValid() const
{
	CView::AssertValid();
}

void CLissajousView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CLissajousDoc* CLissajousView::GetDocument() const // デバッグ以外のバージョンはインラインです。
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CLissajousDoc)));
	return (CLissajousDoc*)m_pDocument;
}
#endif //_DEBUG


// CLissajousView メッセージ ハンドラ
