procedure AAABBB(canvas:TCanvas;Left,Top,Width,Height:integer);
var
Right,Bottom:integer;begin
Right:=Left+width;
Bottom:=Top+Height; Canvas.Pen.Width:=1;
Canvas.Pen.Color:=clwhite; Canvas.MoveTo(Right,Top);
Canvas.lineTo(Left,Top); Canvas.LineTo(Left,bottom); Canvas.Pen.Color:=clgray; Canvas.lineTo(Right,Bottom);
Canvas.lineTo(Right,Top);
end;//==================================
调用: AAABBB(form1.Canvas,20,20,85,85);以上只能画一个矩形,我想画下面的形状,怎样画?
_______
/ \
| |
| |
\_______/
var
Right,Bottom:integer;begin
Right:=Left+width;
Bottom:=Top+Height; Canvas.Pen.Width:=1;
Canvas.Pen.Color:=clwhite; Canvas.MoveTo(Right,Top);
Canvas.lineTo(Left,Top); Canvas.LineTo(Left,bottom); Canvas.Pen.Color:=clgray; Canvas.lineTo(Right,Bottom);
Canvas.lineTo(Right,Top);
end;//==================================
调用: AAABBB(form1.Canvas,20,20,85,85);以上只能画一个矩形,我想画下面的形状,怎样画?
_______
/ \
| |
| |
\_______/
解决方案 »
- 如此大的Exe,你见过吗?
- dbgrid如何改变选中的行颜色?
- 我用的是内网IP,有防火墙,可不可以和公网IP进行UDP发送和接收数据呢?
- 请教知道了一个control的类名称,怎样获得该control的名称啊?
- 小问题,在线等,写清楚就给分!
- 控件透明
- 如何在DBGrid中根据表的时间字段中的时间只显示最新的10条纪录(paradox)
- XE4和DevExpressVCL_12.2.6之间的怪事,求解
- 关于delphi的BDE配置的一个问题
- 求将扫描图片透明化处理的例子
- 高手进来看看,delphi7+ado+mysql的问题
- 现在开发一个服装软件,需要尺码颜色建立二维表,DEPHI MSSQL如何做
{
pDC->MoveTo(pPoints[0]);
fPoint fPointBezier;
for(int i = 0; i < nSegments; i++)
{
BezierComputePoint(i / (float)nSegments, &fPointBezier, pPoints);
pDC->LineTo(ROUND(fPointBezier.x), ROUND(fPointBezier.y));
}
pDC->LineTo(pPoints[3]);
}void BezierComputePoint(float fU, fPoint* pDstPoint, CPoint* pSrcPoints)
{
//
// Add up all the blending functions multiplied with the control points
//
float fBlend;
float f1subu = 1.0f - fU; //
// First blending function (1-u)^3
//
fBlend = f1subu * f1subu * f1subu;
pDstPoint->x = fBlend * pSrcPoints[0].x;
pDstPoint->y = fBlend * pSrcPoints[0].y; //
// Second blending function 3u(1-u)^2
//
fBlend = 3 * fU * f1subu * f1subu;
pDstPoint->x += fBlend * pSrcPoints[1].x;
pDstPoint->y += fBlend * pSrcPoints[1].y; //
// Third blending function 3u^2 * (1-u)
//
fBlend = 3 * fU * fU * f1subu;
pDstPoint->x += fBlend * pSrcPoints[2].x;
pDstPoint->y += fBlend * pSrcPoints[2].y; //
// Fourth blending function u^3
//
fBlend = fU * fU * fU;
pDstPoint->x += fBlend * pSrcPoints[3].x;
pDstPoint->y += fBlend * pSrcPoints[3].y;
}void DrawBeziers(CDC* pDC, CPoint *pPoints, int nPoints, int nSegments)
{
VERIFY(pPoints != NULL);
ASSERT(nSegments > 0);
for(int i = 0; i + 4 <= nPoints; i += 3)
{
DrawBezier(pDC, &pPoints[i], nSegments);
}
}