MFC立方体变色填充

本文介绍了一种使用MFC进行立方体边框填充的方法,通过PolygonFill函数处理边线,创建桶表并进行边线排序,实现颜色的动态变化。涉及到的关键步骤包括桶表的创建、边线的添加到活动边表(AET)以及AET的排序,最终实现对立方体各面的扫描线填充。
void CTestView::PolygonFill(CDC* mdc)
{
HeadE=NULL;
for(CurrentB=HeadB;CurrentB!=NULL;CurrentB=CurrentB->next)
{
for(CurrentE=CurrentB->p;CurrentE!=NULL;CurrentE=CurrentE->next)
{
Edge *TEdge=new Edge;
TEdge->k=CurrentE->k;
TEdge->x=CurrentE->x;
TEdge->yMax=CurrentE->yMax;
TEdge->x1=CurrentE->x1;
TEdge->y1=CurrentE->y1;
TEdge->c1=CurrentE->c1;
TEdge->x2=CurrentE->x2;
TEdge->y2=CurrentE->y2;
TEdge->c2=CurrentE->c2;
TEdge->next=NULL;
AddAet(TEdge);
}
AetOrder();
T1=HeadE;
if(T1==NULL)
{
return;
}
while(CurrentB->ScanLine>=T1->yMax)
{
T1=T1->next;
HeadE=T1;
if(HeadE==NULL)
{
return;
}
}
if(T1->next!=NULL)
{
T2=T1;
T1=T2->next;
}
while(T1!=NULL)
{
if(CurrentB->ScanLine>=T1->yMax)
{
T2->next=T1->next;
T1->next=NULL;
T1=T2->next;
}
else
{
T2=T1;
T1=T2->next;
}
}
MyRGB Is,It,Ip;
if
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值