下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 vc 曲线画图[精品]

vc 曲线画图[精品].doc

vc 曲线画图[精品]

Xanthe燕梅
2017-11-15 0人阅读 举报 0 0 暂无简介

简介:本文档为《vc 曲线画图[精品]doc》,可适用于综合领域

vc曲线画图精品VC曲线绘图voidCMFCTestView::OnDraw(CDC*pDC){CMFCTestDoc*pDoc=GetDocument()ASSERTVALID(pDoc)if(!pDoc)returnTODO:adddrawcodefornativedataherepDC>SetMapMode(MMLOENGLISH)CRectrectGetClientRect(rect)通过此函数获取的矩形坐标为设备坐标CPointptOrigin(rectleft,rectbottom)pDC>SetViewportOrg(ptOrigin)视口只接收设备坐标pDC>DPtoLP(rect)rectNormalizeRect()定义坐标轴原点、XY轴顶点constCPointORIGIN(,)constCPointYEXTENT(ORIGINx,ORIGINyrectHeight()*)constCPointXEXTENT(ORIGINxrectWidth()*,ORIGINy)pDC>MoveTo(YEXTENT)pDC>LineTo(ORIGIN)pDC>LineTo(XEXTENT)纵坐标文字标记intnLabelPos=YEXTENTy((ORIGINyYEXTENTy))pDC>TextOut(ORIGINx,nLabelPos,T("金额"))待绘制的数据doubleprices={,,,,,}COleDateTimedates={COleDateTime(,,,,,),COleDateTime(,,,,,),COleDateTime(,,,,,),COleDateTime(,,,,,),COleDateTime(,,,,,),COleDateTime(,,,,,),}CArray<CPoint,CPoint>ptsUINTcount=sizeof(prices)sizeof(double)for(inti=i<counti){ptsAdd(CPoint(,))}求出Y值的最大和最小值intnMinPrice=(int)pricesintnMaxPrice=(int)pricesfor(inti=i<counti){if(pricesi<nMinPrice)nMinPrice=pricesiif(pricesi>nMaxPrice)nMaxPrice=pricesi}在Y的极值外保留一定的空白边界nMinPrice=int(nMinPrice*)nMaxPrice=int(nMaxPrice*)计算Y轴刻度间距intiScale=nMaxPricenMinPriceintnYIncrement=(YEXTENTyORIGINy)iScale定义刻度线长度constintAXISDIVIDERLENGTH=定义刻度标签字体CFontfontfontCreateFont(,,,,,,,,,,,,FFROMAN,)绘制Y轴刻度线for(inti=i<iScalei){intyPoint=(ORIGINy(i*nYIncrement))pDC>MoveTo(ORIGINx,yPoint)pDC>LineTo(ORIGINxAXISDIVIDERLENGTH,yPoint)计算刻度线对应的刻度值并绘制之CStringyValueyValueFormat(T("d"),nMinPricei)CFont*pOldFont=pDC>SelectObject(font)pDC>TextOut(ORIGINx,yPoint,yValue)pDC>SelectObject(pOldFont)}计算要绘制的曲线点的Y坐标值for(inti=i<counti){ptsiy=ORIGINy(pricesinMinPrice)*nYIncrement}计算X轴刻度间距intnXIncreament=(XEXTENTxORIGINx)count绘制X轴刻度及刻度值for(inti=i<counti){intxPoint=ORIGINxi*nXIncreamentpDC>MoveTo(xPoint,ORIGINy)pDC>LineTo(xPoint,ORIGINyAXISDIVIDERLENGTH)CStringxValuexValueFormat(T("ddd"),datesiGetYear(),datesiGetMonth(),datesiGetDay())CFont*pOldFont=pDC>SelectObject(font)pDC>TextOut(xPoint,ORIGINy,xValue)pDC>SelectObject(pOldFont)ptsix=xPoint}绘制折线pDC>MoveTo(pts)for(inti=i<counti){pDC>LineTo(ptsi)}绘制折线上转折点的Y值for(inti=i<counti){CStringssFormat(T("f"),pricesi)if(i<count){如果后一个点的Y值较大在文本应绘制在曲线的下方否则应绘制在曲线上方if(pricesi>pricesi){pDC>TextOut(ptsix,ptsiy,s)}else{pDC>TextOut(ptsix,ptsiy,s)}}else{pDC>TextOut(ptsix,ptsiy,s)}}}

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/6

vc 曲线画图[精品]

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利