如何实现波形的缩放? SetWorldTransform这个函数不知能不能解决这个个问题,因为我知道这个函数解决图片的缩放等操作比较简单,知道大概的功能,但是具体使用也不太透彻。我要实现的功能是这样的:我要监控电流,并且绘出它的波形。用户可以放大和缩小这个波形。请问该如何实现呢?谢谢!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果自己来编算法的话应该是那样的,但是我只是想纯粹的应用,只要能实现功能就行。有了一点头绪,用SetMapMode来进行缩放,这样自己就不用去写代码来实现了。等研究出来了再告诉你们。 感谢二位的关注主要就是运用SetMapMode()函数和SetWindowExEx()函数。下面是示例代码:void CTestView::OnDraw(CDC* pDC){ CTestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here CRect rect; GetClientRect(&rect); pDC->SetMapMode(m_MapMode); pDC->SetWindowExt(400,400); pDC->SetViewportExt(rect.Width(),rect.Height()); const float PI = 3.1415936f; int x = 0; double y = 0; pDC->MoveTo( 100, 100 ); pDC->LineTo( 460, 100 ); pDC->MoveTo( 100, 100 ); for( int i = 0; i <= 360; i++) { x = i + 100; y = sin( ( 2 * PI ) * i / 360 ) * 100 + 100; pDC->LineTo( x, ( int )y); }}其中SetWindowExEx()函数主要用来设置缩放的比例。 这里的m_MapMode是我定义的一个变量,直接换成MM_ISOTROPIC即可。 还行吧,就算10:1效果也还不错。但是这个方法我不太清楚如何比较准确地设置缩放比例。我机子上pDC->SetWindowExt(400,400); 这样出来的效果基本上等大,会有一点偏移。如果我想实现2倍或3倍放大这些只有该是多少?不知道SetWindowEx里的参数对应到屏幕的比例?有知道的吗? 映射模式是 MM_ISOTROPIC 的话,是按照twips作为度量单位的。1英寸=1440twips。 如果你的屏幕是72dpi,那就是:1英寸=72pixel。知道了这个,你算不出pixel和twips的关系??? 怎样识别特定的USB设备 实现可编辑可选的list ctrl 怪!今天我用gdi+出现了这个 16进制这种数据能不能压缩 关于listctrl控件选中的问题 计算机研究生求北京vc编程兼职工作 为什么CMainFrame::PreCreateWindow这个函数执行了两次 在线请教! wince 调用fortran语言编写的动态链接库的问题 为何没有人告诉我如何在VC++里面调用COM组件? 用ATL做ActiveX控件,bitmap按钮谁会 可能你也会的问题,关于excel文件的读写
有了一点头绪,用SetMapMode来进行缩放,这样自己就不用去写代码来实现了。
等研究出来了再告诉你们。
{
CTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here CRect rect;
GetClientRect(&rect);
pDC->SetMapMode(m_MapMode);
pDC->SetWindowExt(400,400);
pDC->SetViewportExt(rect.Width(),rect.Height());
const float PI = 3.1415936f; int x = 0;
double y = 0; pDC->MoveTo( 100, 100 );
pDC->LineTo( 460, 100 );
pDC->MoveTo( 100, 100 ); for( int i = 0; i <= 360; i++)
{
x = i + 100;
y = sin( ( 2 * PI ) * i / 360 ) * 100 + 100;
pDC->LineTo( x, ( int )y);
}
}其中SetWindowExEx()函数主要用来设置缩放的比例。
但是这个方法我不太清楚如何比较准确地设置缩放比例。我机子上
pDC->SetWindowExt(400,400);
这样出来的效果基本上等大,会有一点偏移。如果我想实现2倍或3倍放大这些只有该是多少?不知道SetWindowEx里的参数对应到屏幕的比例?有知道的吗?