谁能帮我分析一下,我想画梯形怎么却画出来个斜边矩形?
下面是代码,放一个按钮就能运行出结果,等。。。
CDC * pDC = GetDC();
POINT pt[9] = {{17,36},{0,70},{149,70},{132,36},{17,36}};
CRgn rgn;
rgn.CreatePolygonRgn( pt, 5, ALTERNATE );
CDC dcMem;
CBitmap Bitmap;
dcMem.CreateCompatibleDC(pDC);
Bitmap.CreateCompatibleBitmap(pDC,59,23);
CBitmap * pOldBmp=dcMem.SelectObject(&Bitmap);
int r1=128,g1=200,b1=200;
int r2=100, g2=55, b2=165;
DWORD dwSize = rgn.GetRegionData(0, NULL);
BYTE* pData=new BYTE[dwSize];
rgn.GetRegionData((LPRGNDATA)pData,dwSize);
LPRGNDATA d = (LPRGNDATA)pData;
CRect * rect = (CRect*)(d->Buffer);
int nHeight = d->rdh.nCount;
for(int i=0;i<d->rdh.nCount;i++){
int r,g,b;
r = r1 + (i * (r2-r1) / nHeight);
g = g1 + (i * (g2-g1) / nHeight);
b = b1 + (i * (b2-b1) / nHeight);
CRect aRect = rect+i;
CRect sr(0,i,aRect.Width(),i+1);
dcMem.FillSolidRect(sr,RGB(r,g,b));
pDC->BitBlt(aRect.left,aRect.top,aRect.Width(),aRect.Height(),&dcMem,0,i,SRCCOPY);
}
Bitmap.DeleteObject();
dcMem.SelectObject(pOldBmp);
dcMem.DeleteDC();
...全文
相关推荐
如何用矩形法(梯形法)求定积分
随着n的增加,即小段数量的增加,这些方法的近似值会更加接近实际的定积分值,这是由辛普森法则和梯形规则的误差分析所保证的。
MATLAB有限元编程实战:杆板组合结构与梯形薄壁板分析
有限元分析是工程结构仿真中的核心方法,其本质是将连续体离散为单元,通过单元刚度矩阵的推导与组装,求解整体位移场和应力场。在汽车车门内板、飞机蒙皮加筋壁板等复杂结构中,杆单元与板单元的组合建模尤为常见,涉及坐标变换、整体刚度矩阵组装、边界条件处理等关键步骤。平面应力假设下,常应变三角形单元(CST)因公式简洁、无需数值积分,成为分析薄壁板类结构的理想选择。结合梯形板的网格生成与载荷等效分配,MATLAB程序可以高效实现从网格划分、单元矩阵计算到求解与后处理的完整流程。本文以杆板组合结构大作业为例,深入剖析单元
矩形梯形波的傅里叶变换及截断影响
《矩形梯形波的傅里叶变换及截断影响》傅里叶变换是分析周期性和非周期性信号的基础工具,它将时域中的信号转换到频域中,揭示了信号的频率成分。
阿克曼原理与矩形化转向梯形设计
根据提供的文件内容,我们可以深入探讨阿克曼原理与矩形化转向梯形设计在智能车领域的应用及相关技术细节。
矩形法,梯形法,辛普森.zip
每个小区间不再是简单的矩形,而是由两个端点和中点的函数值确定的梯形。因此,梯形法的精度比矩形法更高。在MATLAB中,可以通过计算每个梯形的面积并累加来实现。3.


图形处理/算法
