⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_33782.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:33782 发表者:苦闷 发表日期:2003-03-24 11:07:24
<br>主题:高分求解
<br>内容:我想让输出的波形每隔1秒钟在正弦波形和余弦波形之间变化。
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:iwill 回复日期:2003-03-24 11:34:18
<br>内容:算法有问题,在不修改算法基础上的视图类的修改:<BR>// item2View.cpp : implementation of the CItem2View class<BR>//<BR><BR>#include "stdafx.h"<BR>#include "item2.h"<BR><BR>#include "item2Doc.h"<BR>#include "item2View.h"<BR>#include"math.h"<BR>#ifdef _DEBUG<BR>#define new DEBUG_NEW<BR>#undef THIS_FILE<BR>static char THIS_FILE[] = __FILE__;<BR>#endif<BR>#define M_PI 3.1415926<BR>/////////////////////////////////////////////////////////////////////////////<BR>// CItem2View<BR><BR>IMPLEMENT_DYNCREATE(CItem2View, CView)<BR><BR>BEGIN_MESSAGE_MAP(CItem2View, CView)<BR>&nbsp;&nbsp;&nbsp;&nbsp;//{{AFX_MSG_MAP(CItem2View)<BR>&nbsp;&nbsp;&nbsp;&nbsp;ON_WM_CREATE()<BR>&nbsp;&nbsp;&nbsp;&nbsp;ON_WM_TIMER()<BR>&nbsp;&nbsp;&nbsp;&nbsp;//}}AFX_MSG_MAP<BR>&nbsp;&nbsp;&nbsp;&nbsp;// Standard printing commands<BR>&nbsp;&nbsp;&nbsp;&nbsp;ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)<BR>&nbsp;&nbsp;&nbsp;&nbsp;ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)<BR>&nbsp;&nbsp;&nbsp;&nbsp;ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)<BR>END_MESSAGE_MAP()<BR><BR>/////////////////////////////////////////////////////////////////////////////<BR>// CItem2View construction/destruction<BR><BR>CItem2View::CItem2View()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;// TODO: add construction code here<BR><BR>}<BR><BR>CItem2View::~CItem2View()<BR>{<BR>}<BR><BR>BOOL CItem2View::PreCreateWindow(CREATESTRUCT&amp; cs)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;// TODO: Modify the Window class or styles here by modifying<BR>&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;the CREATESTRUCT cs<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;return CView::PreCreateWindow(cs);<BR>}<BR><BR>/////////////////////////////////////////////////////////////////////////////<BR>// CItem2View drawing<BR><BR>void CItem2View::OnDraw(CDC* pDC)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;CItem2Doc* pDoc = GetDocument();<BR>&nbsp;&nbsp;&nbsp;&nbsp;ASSERT_VALID(pDoc);<BR>&nbsp;&nbsp;&nbsp;&nbsp;// TODO: add draw code for native data here<BR>&nbsp;&nbsp;&nbsp;&nbsp;int i;<BR>&nbsp;&nbsp;&nbsp;&nbsp;static int init=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CRect Rect;<BR>&nbsp;&nbsp;&nbsp;&nbsp;double x,y;<BR>&nbsp;&nbsp;&nbsp;&nbsp;GetClientRect(&amp;Rect);<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;=360;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COLORREF&nbsp;&nbsp;&nbsp;&nbsp;rgb(RGB(255,0,0));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float x,y;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x= (float)(Rect.left + ((float)i/180) * (Rect.right-Rect.left)*1/2);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y= (float)(Rect.bottom - ((Rect.bottom-Rect.top) * 1/2)-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sin((float)(M_PI *( i-init) /180)) * 120);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pDC-&gt;SetPixel(x,y,rgb);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;init++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(init&gt;360)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init=0;<BR>}<BR><BR>/////////////////////////////////////////////////////////////////////////////<BR>// CItem2View printing<BR><BR>BOOL CItem2View::OnPreparePrinting(CPrintInfo* pInfo)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;// default preparation<BR>&nbsp;&nbsp;&nbsp;&nbsp;return DoPreparePrinting(pInfo);<BR>}<BR><BR>void CItem2View::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;// TODO: add extra initialization before printing<BR>}<BR><BR>void CItem2View::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;// TODO: add cleanup after printing<BR>}<BR><BR>/////////////////////////////////////////////////////////////////////////////<BR>// CItem2View diagnostics<BR><BR>#ifdef _DEBUG<BR>void CItem2View::AssertValid() const<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;CView::AssertValid();<BR>}<BR><BR>void CItem2View::Dump(CDumpContext&amp; dc) const<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;CView::Dump(dc);<BR>}<BR><BR>CItem2Doc* CItem2View::GetDocument() // non-debug version is inline<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;ASSERT(m_pDocument-&gt;IsKindOf(RUNTIME_CLASS(CItem2Doc)));<BR>&nbsp;&nbsp;&nbsp;&nbsp;return (CItem2Doc*)m_pDocument;<BR>}<BR>#endif //_DEBUG<BR><BR>/////////////////////////////////////////////////////////////////////////////<BR>// CItem2View message handlers<BR><BR>int CItem2View::OnCreate(LPCREATESTRUCT lpCreateStruct) <BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (CView::OnCreate(lpCreateStruct) == -1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return -1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;// TODO: Add your specialized creation code here<BR>&nbsp;&nbsp;&nbsp;&nbsp;SetTimer(1,20,NULL);<BR>&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>}<BR><BR>void CItem2View::OnTimer(UINT nIDEvent) <BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;// TODO: Add your message handler code here and/or call default<BR>&nbsp;&nbsp;&nbsp;&nbsp;Invalidate();<BR>/*&nbsp;&nbsp;&nbsp;&nbsp;int i;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CRect Rect;<BR>&nbsp;&nbsp;&nbsp;&nbsp;double x,y;<BR>&nbsp;&nbsp;&nbsp;&nbsp;GetClientRect(&amp;Rect);<BR>&nbsp;&nbsp;&nbsp;&nbsp;CDC* pDC=GetDC(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;=360;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;COLORREF&nbsp;&nbsp;&nbsp;&nbsp;rgb(RGB(255,0,0));<BR>&nbsp;&nbsp;&nbsp;&nbsp;float x,y;<BR>&nbsp;&nbsp;&nbsp;&nbsp;x= (float)(Rect.left + ((float)i/180) * (Rect.right-Rect.left)*1/2);<BR>&nbsp;&nbsp;&nbsp;&nbsp;y= (float)(Rect.bottom - ((Rect.bottom-Rect.top) * 1/2)-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cos((float)(M_PI * i /180)) * 120);<BR>&nbsp;&nbsp;&nbsp;&nbsp;pDC-&gt;SetPixel(x,y,rgb) ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>*/&nbsp;&nbsp;&nbsp;&nbsp;CView::OnTimer(nIDEvent);<BR>}<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:苦闷 回复日期:2003-03-24 12:44:18
<br>内容:你这里没有输出余弦波形啊。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:iwill 回复日期:2003-03-24 12:52:31
<br>内容:只是一个相位的问题,自己应该能够解决呀&nbsp;&nbsp;&nbsp;&nbsp; <BR><BR>CItem2Doc* pDoc = GetDocument();<BR>&nbsp;&nbsp;&nbsp;&nbsp;ASSERT_VALID(pDoc);<BR>&nbsp;&nbsp;&nbsp;&nbsp;// TODO: add draw code for native data here<BR>&nbsp;&nbsp;&nbsp;&nbsp;int i;<BR>&nbsp;&nbsp;&nbsp;&nbsp;static int init=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CRect Rect;<BR>&nbsp;&nbsp;&nbsp;&nbsp;double x,y;<BR>&nbsp;&nbsp;&nbsp;&nbsp;GetClientRect(&amp;Rect);<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;=360;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COLORREF&nbsp;&nbsp;&nbsp;&nbsp;rgb(RGB(255,0,0));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float x,y;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x= (float)(Rect.left + ((float)i/180) * (Rect.right-Rect.left)*1/2);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y= (float)(Rect.bottom - ((Rect.bottom-Rect.top) * 1/2)-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sin((float)(M_PI *( i+init) /180)) * 120);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pDC-&gt;SetPixel(x,y,rgb);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;init+=90;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(init&gt;90)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init=0;
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -