当前位置:C++技术网 > 资讯 > 多彩色的金字塔

多彩色的金字塔

更新时间:2015-11-29 15:48:10浏览次数:1+次

默认情况下,路径渐变画刷的色彩只有两种:中心点色彩及边缘色彩。同线性渐变画刷相同,路径渐变画刷同样可以通过函数SetInterpolationColors来增加渐变色,多色渐变的编程操作也遵循”指明渐变色总数,指明合成位置“的基本思路。代码实现一个多色金字塔:

GDI+程序的步骤,我就不说了,我们在《“手电筒“式的球体》里的菜单项”路径画刷中心“下在新建一个子菜单项”多色渐变“。

并建立消息响应:

void CPathBrushCenterView::OnBrushpathinterpolationcolors()
{
	// TODO:  在此添加命令处理程序代码
	this->RedrawWindow();
	Graphics graphics(this->m_hWnd);
	SolidBrush brush(Color::White); 
	//////设置三角形的3个点
	Point points[] = {
		Point(100, 0),
		Point(200, 200),
		Point(0, 200)
	};
	//////创建一个三角形渐变画刷
	PathGradientBrush pthGrBrush(points, 3);
	Color col[] = {
		Color(255, 255, 0, 0),
		Color(255, 0, 255, 0),
		Color(255, 0, 0, 255)
	};
	//////设置合成点的位置
	REAL pos[] =
	{
		0.0f,    /////在区域边界处使用红色
		0.4f,   //////在距离中心点40%的位置处使用绿色
		1.0f   ///////在中心点使用蓝色
	};
	//////设置渐变的过渡色
	pthGrBrush.SetInterpolationColors(col, pos, 3);
	////填充区域
	graphics.FillRectangle(&pthGrBrush, 0, 0, 300, 300);
	/////标记中心点
	Point centerpoint;
	pthGrBrush.GetCenterPoint(&centerpoint);
        ////////在中心点画一个圆
	graphics.FillEllipse(&brush, centerpoint.X - 5, centerpoint.Y - 5, 10, 10);
}
代码实现图:

这不像金字塔的俯视图吗?请你看看《线性渐变画刷的学习之多色渐变色彩的设置》相比较两种渐变画刷的多色渐变。