社区
图形处理/算法
帖子详情
怎样填充五角星内的区域为红色?
sdhzzzzcd
2005-03-23 01:14:35
各位高手:
我已用MoveTo,LineTo 方法画出了五角星,请问怎样填充五角星内的区域为红色?谢谢!
...全文
314
8
打赏
收藏
怎样填充五角星内的区域为红色?
各位高手: 我已用MoveTo,LineTo 方法画出了五角星,请问怎样填充五角星内的区域为红色?谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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画一个
五角星
的例子,可以运行
这段代码首先
填充
白色背景,然后使用
红色
刷子绘制
五角星
。计算顶点坐标时,我们使用了对话框的中心点作为参考,半径可以根据实际需求调整。最后,使用SelectObject()清除当前的绘图刷,以防止后续绘图受到影响。 ...
PowerPoint简单制作立体3D
五角星
.docx
在
五角星
被选中的状态下,通过“
填充
”选项更改其颜色,比如,您可以将其设置为醒目的
红色
。改变颜色不仅能让
五角星
更加醒目,也能让整个幻灯片的视觉效果更加协调。 经过以上步骤,您将拥有一颗在PowerPoint中制作...
python代码五星红旗项目源码有详细注解,适合新手一看就懂.rar
此外,此项目还可能包含如何组织和模块化代码的示例,比如使用函数来封装特定的任务,如绘制单个
五角星
或
填充
红色
背景。这样不仅使代码更加整洁,也便于后期的维护和扩展。 总的来说,"python代码五星红旗项目源码...
python 绘制五星红旗.py
一旦计算出这些点,就可以使用绘图命令连接它们并
填充
金黄色以形成一个
五角星
。 绘制四颗小星星是接下来的步骤,这些小星星分布在大星星的右侧,并且围绕大星星呈弧形排列。小星星的大小和位置必须准确地参照真实的...
stm32嵌入式实验考核21
6. **背景色设置**:要设置
红色
背景,需要在初始化阶段或者在显示
五角星
之前,将整个LCD屏幕的背景
区域
填充
为
红色
。 7. **程序设计**:编写C语言代码来驱动STM32的GPIO和LCD接口,实现屏幕的初始化、颜色设置、五角...
图形处理/算法
19,472
社区成员
50,678
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章