关于多边形填充的问题

yichaozhang 2008-04-07 11:34:26
我想用VC绘制一个有颜色的等边三角形代码如下
void DrawTriangle(CDC *pDC,float x0,float y0,int flag,COLORREF cr,int dis,int nWidth,int nPenStyle)//
{

float x1,y1,x2,y2;
x1=x0+dis*(0.866)*(flag);
y1=y0-dis/2;
x2=x0+dis*(0.866)*(flag);
y2=y0+dis/2;

CPoint p[2];
p[0].x=x0;
p[0].y=y0;

p[1].x=x1;
p[1].y=y1;

p[2].x=x2;
p[2].y=y2;

CRgn rgnA;
rgnA.CreatePolygonRgn( p, 3, ALTERNATE );
CBrush brA;
brA.CreateSolidBrush( RGB(255, 0, 0) );
pDC->SelectObject(&brA);
pDC->FillRgn( &rgnA, &brA );


}
绘制完成后并不是等边而采用
void DrawTriangle(CDC *pDC,float x0,float y0,int flag,COLORREF cr,int dis,int nWidth,int nPenStyle)//
{

CPen *pNewPen=new CPen;
pNewPen->CreatePen (nPenStyle,0,cr);
CPen *pOldPen=pDC->SelectObject (pNewPen);
float x1,y1,x2,y2;
x1=x0+dis*(0.866)*(flag);
y1=y0-dis/2;
x2=x0+dis*(0.866)*(flag);
y2=y0+dis/2;
pDC->MoveTo(x0,y0);
pDC->LineTo(x1,y1);
pDC->LineTo(x2,y2);
pDC->LineTo(x0,y0);
pDC->SelectObject (pOldPen);
delete pNewPen;



} 注 (x0,y0)(x1,y1),(x2,y2)为定点坐标
则能产生一个未上色的等边三角形,若同时使用俩个函数,设置相同的定点坐标(x0,y0),但画出的三角形形状不一样,所处的坐标也不相同,本人想得到一个如函数2的有颜色的三角形
请达人帮忙看一下 不胜感激
...全文
70 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yichaozhang 2008-04-08
  • 打赏
  • 举报
回复
谢谢~
菜牛 2008-04-08
  • 打赏
  • 举报
回复
CPoint p[3];
scq2099yt 2008-04-08
  • 打赏
  • 举报
回复
GDI+
CPoint p[3];
相关推荐
发帖
图形处理/算法

1.9w+

社区成员

VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
帖子事件
创建了帖子
2008-04-07 11:34
社区公告
暂无公告