社区
图形处理/算法
帖子详情
怎样填充五角星内的区域为红色?
sdhzzzzcd
2005-03-23 01:14:35
各位高手:
我已用MoveTo,LineTo 方法画出了五角星,请问怎样填充五角星内的区域为红色?谢谢!
...全文
333
8
打赏
收藏
怎样填充五角星内的区域为红色?
各位高手: 我已用MoveTo,LineTo 方法画出了五角星,请问怎样填充五角星内的区域为红色?谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qiu123fly
2005-03-26
打赏
举报
回复
小问题,数组本身就是指针!
crgn.CreatePolygonRgn(&POINT,5,ALTERNATE)中参数有问题
改为:
crgn.CreatePolygonRgn(POINT,5,ALTERNATE);
即可
你这样画出来的是五边形!
我的代码如下:
int mPoiNum = 10 ;
CPoint mOgn ;
mOgn.x = 250 ;
mOgn.y = 250 ;
int i, j ;
double mAngle, mX, mY, mR = 100.0, PI, a, b ;
PI = 3.1416 ;
b = 2 * cos(PI*0.2) ;
a = 1.0 ;
// 计算五角星的边缘上各个点的坐标
for( i=0 ; i<5 ; i++ )
{
mAngle = PI * 0.4 * i ;
mX = mR * sin(mAngle) ;
mY = mR * cos(mAngle) ;
mPoint[i*2].x = (int)mX ;
mPoint[i*2].y = (int)mY ;
}
for( i=0 ; i<5 ; i++ )
{
if( i+2 < 5 )
j = i + 2 ;
else if( i+2 >= 5 )
j = i - 3 ;
mX = ( mPoint[i*2].x * (a+b) + mPoint[j*2].x * b ) / (2*a+b) ;
mY = ( mPoint[i*2].y * (a+b) + mPoint[j*2].y * b ) / (2*a+b) ;
mPoint[i*2 + 1].x = (int) mX ;
mPoint[i*2 + 1].y = (int) mY ;
}
for( i=0 ; i<10 ; i++ )
{
mPoint[i].x = mOgn.x + mPoint[i].x ;
mPoint[i].y = mOgn.y - mPoint[i].y ;
}
myPolyRgn.CreatePolygonRgn(mPoint, mPoiNum, ALTERNATE) ;
CBrush *oldBrush ;
CBrush myBrush(RGB(255,0,0)) ;
int i ;
pDC->MoveTo(mPoint[9]) ;
for( i=0 ; i<10 ; i++ )
{
pDC->LineTo(mPoint[i]) ;
pDC->MoveTo(mPoint[i]) ;
}
oldBrush = pDC->SelectObject(&myBrush) ;
pDC->FillRgn(&myPolyRgn, &myBrush) ;
OK!
sdhzzzzcd
2005-03-23
打赏
举报
回复
什么意思?不太明白,麻烦说清楚一点,谢谢!
sboom
2005-03-23
打赏
举报
回复
种子填充算法。。。。。
UDX协议
2005-03-23
打赏
举报
回复
CRgn crgn;
还要调用crgn.create
sdhzzzzcd
2005-03-23
打赏
举报
回复
麻烦二楼的大哥讲详细一点好吗?
m_star=30;
CPoint POINT[5];
POINT[0]=((int)(xCenter+m_star*cos(PI/10)),(int)(yCenter-m_star*sin(PI/10)));
POINT[1]=((int)(xCenter-m_star*cos(PI/10)),(int)(yCenter-m_star*sin(PI/10)));
POINT[2]=((int)(xCenter+m_star*cos(3*PI/10)),(int)(yCenter+m_star*sin(3*PI/10)));
POINT[3]=((int)xCenter,(int)(yCenter-m_star));
POINT[4]=((int)(xCenter-m_star*cos(3*PI/10)),(int)(yCenter+m_star*sin(3*PI/10)));
CRgn crgn;
HRGN hRgn=NULL;
hRgn=crgn.operator HRGN();
CRgn *pRGN=CRgn::FromHandle(hRgn);
crgn.CreatePolygonRgn(&POINT,5,ALTERNATE);
pDC->FillRgn(pRGN,&m_brush);
DeleteObject(hRgn);
我用这段代码怎么不行呢?麻烦各位大哥给指点指点!!!
flyjzy5
2005-03-23
打赏
举报
回复
楼上方法好
I_Love_CPP
2005-03-23
打赏
举报
回复
用CRgn:
CRgn::CreatePolygonRgn
然后用CDC::FillRgn
BOOL FillRgn(
CRgn* pRgn,
CBrush* pBrush
);
mfc画一个
五角星
的例子,可以运行
画一个规则
五角星
,代码简洁,可以直接运行,
PowerPoint简单制作立体3D
五角星
.docx
PowerPoint简单制作立体3D
五角星
.docx
python代码五星红旗项目源码有详细注解,适合新手一看就懂.rar
python代码五星红旗项目源码有详细注解,适合新手一看就懂
python 绘制五星红旗.py
绘制五星红旗的思路可以分为以下几个步骤: 确定旗帜的比例和尺寸: 中国的五星红旗比例为2:3,通常可以选择一个合适的尺寸,例如宽600px,高400px。 绘制背景: 选择
红色
作为背景色,
填充
整个旗帜
区域
。 绘制大星: 大星位于左上角,通常为金黄色。可以使用多边形绘制
五角星
,确保其中心位置和大小合适。 绘制四颗小星: 四颗小星围绕大星,呈弧形排列。小星的颜色同样为金黄色,大小相对大星较小。 调整位置和角度: 确保所有星星的位置和角度符合实际五星红旗的设计。
stm32嵌入式实验考核21
利用 STM32 小板实现和 LCD 屏幕实现:LCD 屏幕显示一个黄色
五角星
,要求红底。
图形处理/算法
19,466
社区成员
50,678
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章