日期:2014-05-19  浏览次数:21027 次

用gdi绘图,如何使得绘制的曲线只在一个矩型内,外部就不显示,该怎么做?
Graphics   g   =   this.CreateGraphics   ();
Pen   mypen1   =   new   Pen   (Color.Plum,2   );
//计算给个点的相对坐标;

PointF[]   point1   =   new   PointF   [d1.Length/6   ];
double   nd   =   d3[0];
int   i=0;
for(int   j   =   0;   nd   ==   d3[i];j++)
{
if(d1[i]> 0)
{
d1[i]   =   xyd   +   (d1[i]*40/xzb);
}
else   if(d1[i]   ==   0)
{
d1[i]   =   xyd;
}
else
{
d1[i]   =   xyd   -   Math.Abs   (d1[i])*40/xzb   ;
}
if(d2[i]> 0)
{
d2[i]   =   yyd   -   d2[i]*40/yzb   ;
}
else   if(d2[i]   ==   0)
{
d2[i]   =   yyd;
}
else
{
d2[i]   =   yyd   +   (Math.Abs   (d2[i])*40/yzb);
}
point1[j]   =   new   PointF   (   (float)(d1[i])   ,(float)(d2[i])   );
i++;
}
g.DrawClosedCurve   (mypen1,point1);

------解决方案--------------------
可以对g使用SetClip(Rectangle)来限定绘制的区域是指定的矩形区域或其它区域.
------解决方案--------------------
限定一个区域啊.